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
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+4 -4
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':['甥媳妇','甥媳','甥嫂','甥妇','甥儿息妇儿'],
+18 -12
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':['姐妹']
+1
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({