updated 支持排序计算

This commit is contained in:
PASSER-BY 2022-09-03 02:42:13 +08:00
parent 2f118960df
commit 191f28ea67
5 changed files with 25 additions and 18 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -424,11 +424,11 @@ export default {
'w,xs,d,s':['姨甥外孙','姨外孙','姨外孙男','姨外孙男'], 'w,xs,d,s':['姨甥外孙','姨外孙','姨外孙男','姨外孙男'],
'w,xs,d,d':['姨甥外孙女','姨外孙女'], 'w,xs,d,d':['姨甥外孙女','姨外孙女'],
// 兄弟姐妹系 // 兄弟姐妹系
'ob':['哥哥','哥','胞兄','亲哥','老哥','依哥','阿哥','家兄','兄长','大佬','元兄','长兄'], 'ob':['哥哥','哥','胞兄','亲哥','老哥','依哥','阿哥','家兄','兄长','大佬','元兄','长兄','几哥'],
'ob,w':['大嫂','嫂子','嫂','嫂嫂','阿嫂','家嫂','兄姊','兄嫂','兄妇','兄妻','几嫂'], 'ob,w':['大嫂','嫂子','嫂','嫂嫂','阿嫂','家嫂','兄姊','兄嫂','兄妇','兄妻','几嫂'],
'ob,s':['兄子'], 'ob,s':['兄子'],
'ob,d':['兄女'], 'ob,d':['兄女'],
'lb':['弟弟','弟','胞弟','亲弟','老弟','阿弟','细佬','依弟','小弟','幺弟','细弟','满弟','幼弟'], 'lb':['弟弟','弟','胞弟','亲弟','老弟','阿弟','细佬','依弟','小弟','幺弟','细弟','满弟','幼弟','几弟'],
'lb,w':['弟妹','弟媳','弟媳妇','弟媳妇子','弟新妇','老弟嫂'], 'lb,w':['弟妹','弟媳','弟媳妇','弟媳妇子','弟新妇','老弟嫂'],
'lb,s':['弟子'], 'lb,s':['弟子'],
'lb,d':['弟女'], 'lb,d':['弟女'],
@ -436,9 +436,9 @@ export default {
'xb,s,w':['侄媳妇','侄媳','侄嫂','侄妇'], 'xb,s,w':['侄媳妇','侄媳','侄嫂','侄妇'],
'xb,d':['侄女','侄囡','侄女儿','侄闺女'], 'xb,d':['侄女','侄囡','侄女儿','侄闺女'],
'xb,d,h':['侄女婿','侄婿'], 'xb,d,h':['侄女婿','侄婿'],
'os':['姐姐','姐','胞姐','亲姐','阿姐','阿姊','姊仔','家姐','依姐','长姐'], 'os':['姐姐','姐','胞姐','亲姐','阿姐','阿姊','姊仔','家姐','依姐','长姐','几姐'],
'os,h':['姐夫','姐丈','姐婿','姐郎','姊兄','姐夫哥','胞姐夫'], 'os,h':['姐夫','姐丈','姐婿','姐郎','姊兄','姐夫哥','胞姐夫'],
'ls':['妹妹','妹','胞妹','亲妹','阿妹','妹儿','妹子','依妹','幺妹','细妹','满妹','幼妹'], 'ls':['妹妹','妹','胞妹','亲妹','阿妹','妹儿','妹子','依妹','幺妹','细妹','满妹','幼妹','几妹'],
'ls,h':['妹夫','妹丈','妹婿','妹郎','妹弟','妹夫子','胞妹夫'], 'ls,h':['妹夫','妹丈','妹婿','妹郎','妹弟','妹夫子','胞妹夫'],
'xs,s':['外甥','甥子','甥男','甥儿','甥儿子','甥','甥仔'], 'xs,s':['外甥','甥子','甥男','甥儿','甥儿子','甥','甥仔'],
'xs,s,w':['甥媳妇','甥媳','甥嫂','甥妇','甥儿息妇儿'], 'xs,s,w':['甥媳妇','甥媳','甥嫂','甥妇','甥儿息妇儿'],

View File

@ -217,7 +217,7 @@ export function getSelectors(str){
if(match){ if(match){
if(_data[i].indexOf(x_name)>-1){ if(_data[i].indexOf(x_name)>-1){
var num = zh2number(match[0]); var num = zh2number(match[0]);
var r_i = i.replace(/(,[hw])$/,'&'+num+'$1').replace(/(,[^hw]+)$/,'$1&'+num); var r_i = i.replace(/(,[hw])$/,'&'+num+'$1').replace(/([^hw]+)$/,'$1&'+num);
x_items.push(r_i); x_items.push(r_i);
} }
if(_data[i].indexOf(r_name)>-1){ if(_data[i].indexOf(r_name)>-1){
@ -463,23 +463,29 @@ export function getItemsById(id){
return res; return res;
}; };
// 对排序进行处理 // 对排序进行处理
while(id.match(/&\d+/)){ if(id.match(/&([\d]+)(,[hw])?$/)){
var num = id.match(/&([\d]+)/)[1]; var num = id.match(/&([\d]+)(,[hw])?$/)[1];
var zh = number2zh(num); var zh = number2zh(num);
id = id.replace(/&\d+/,''); id = id.replace(/&\d+/g,'');
if(_data[id]){ if(_data[id]){
var item = ''; var item = '';
_data[id].forEach(function(name){ var gen = getGen(id);
if(!item&&name.indexOf('几')>-1){ if(gen<3){
item = name.replace('几',zh); _data[id].forEach(function(name){
if(!item&&name.indexOf('几')>-1){
item = name.replace('几',zh);
}
});
if(!item){
item = _data[id][0].match(/^[大小]/)?_data[id][0].replace(/^[大小]/,zh):zh+_data[id][0];
} }
}); }else{
if(!item){ item = _data[id][0]
item = _data[id][0].match(/^[大小]/)?_data[id][0].replace(/^[大小]/,zh):zh+_data[id][0];
} }
items.push(item); items.push(item);
break;
} }
}else{
id = id.replace(/&\d+/g,'');
} }
// 直接匹配称呼 // 直接匹配称呼
if(!items.length){ if(!items.length){
@ -508,7 +514,7 @@ export function getItemsById(id){
export function getChainById(id){ export function getChainById(id){
var arr = id.split(','); var arr = id.split(',');
return arr.map(function(sign){ return arr.map(function(sign){
var key = sign.replace(/&[ol]/,''); var key = sign.replace(/&[ol\d]+/,'');
var data = Object.assign({},_data,{ var data = Object.assign({},_data,{
'xb':['兄弟'], 'xb':['兄弟'],
'xs':['姐妹'] 'xs':['姐妹']

View File

@ -30,6 +30,7 @@ var relationship = function (parameter){
to_selectors = ['']; to_selectors = [''];
} }
var result = []; //匹配结果 var result = []; //匹配结果
// console.log('[selectors]',from_selectors,to_selectors);
from_selectors.forEach(function(from_selector){ from_selectors.forEach(function(from_selector){
to_selectors.forEach(function(to_selector){ to_selectors.forEach(function(to_selector){
var list = mergeSelector({ var list = mergeSelector({