updated 表哥的表哥,表姐的表妹等关系的问题处理
This commit is contained in:
parent
86c8df8668
commit
fb5acebacb
@ -129,9 +129,13 @@
|
|||||||
exp:/^,[olx][sb],[olx]s$/,
|
exp:/^,[olx][sb],[olx]s$/,
|
||||||
str:',#,xs'
|
str:',#,xs'
|
||||||
},
|
},
|
||||||
{//父母的子女年龄判断不准确,可过滤
|
{//父母的女儿年龄判断是哥哥还是弟弟
|
||||||
exp:/(,[mf],[ds])&[ol]/,
|
exp:/,[mf],d&([ol])/,
|
||||||
str:'$1'
|
str:',$1s'
|
||||||
|
},
|
||||||
|
{//父母的女儿年龄判断是姐姐还是妹妹
|
||||||
|
exp:/,[mf],s&([ol])/,
|
||||||
|
str:',$1b'
|
||||||
},
|
},
|
||||||
{//如果自己是男性,父母的儿子是自己或者兄弟
|
{//如果自己是男性,父母的儿子是自己或者兄弟
|
||||||
con:/(,[fhs]|([olx]b)),[mf],s/,
|
con:/(,[fhs]|([olx]b)),[mf],s/,
|
||||||
@ -441,21 +445,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// if(result.length){ //对年龄进行智能过滤
|
|
||||||
// var item = result[0];
|
|
||||||
// var o = item.match(/&o/);
|
|
||||||
// var l = item.match(/&l/);
|
|
||||||
// if(o&&l){
|
|
||||||
// var filter = /&[ol]/g;
|
|
||||||
// for(var i=0;i<result.length;i++){
|
|
||||||
// result[i]=result[i].replace(filter,'');
|
|
||||||
// }
|
|
||||||
// }else if(o&&!l){
|
|
||||||
// _attr = 'o';
|
|
||||||
// }else if(!o&&l){
|
|
||||||
// _attr = 'l';
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -464,7 +453,7 @@
|
|||||||
var result = [];
|
var result = [];
|
||||||
var getId = function(selector){
|
var getId = function(selector){
|
||||||
var s;
|
var s;
|
||||||
// console.log('selector',selector);
|
// console.log('in#',selector);
|
||||||
do{
|
do{
|
||||||
s = selector;
|
s = selector;
|
||||||
for(var i in _filter){
|
for(var i in _filter){
|
||||||
@ -476,10 +465,10 @@
|
|||||||
}else{
|
}else{
|
||||||
selector = selector.replace(item['exp'],item['str']);
|
selector = selector.replace(item['exp'],item['str']);
|
||||||
}
|
}
|
||||||
console.log(item,selector);
|
// console.log(item,selector);
|
||||||
}
|
}
|
||||||
}while(s!=selector);
|
}while(s!=selector);
|
||||||
// console.log('??',selector);
|
// console.log('out#',selector);
|
||||||
if(selector.indexOf('#')>-1){
|
if(selector.indexOf('#')>-1){
|
||||||
var arr = selector.split('#');
|
var arr = selector.split('#');
|
||||||
for(var i=0;i<arr.length;i++){
|
for(var i=0;i<arr.length;i++){
|
||||||
@ -487,13 +476,6 @@
|
|||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
selector = selector.substr(1); //去前面逗号
|
selector = selector.substr(1); //去前面逗号
|
||||||
// if(_attr){
|
|
||||||
// if(selector.match(/,[ds]$/)){
|
|
||||||
// selector += '&'+_attr;
|
|
||||||
// }else if(selector.match(/^x[sb]$/)){ //兄弟姐妹加属性
|
|
||||||
// selector = selector.replace(/x/,_attr);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
result.push(selector);
|
result.push(selector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -515,22 +497,21 @@
|
|||||||
|
|
||||||
function relationship(str){
|
function relationship(str){
|
||||||
var selectors = getSelectors(str);
|
var selectors = getSelectors(str);
|
||||||
console.log('selectors',selectors);
|
// console.log('selectors#',selectors);
|
||||||
var result = []; //匹配结果
|
var result = []; //匹配结果
|
||||||
for(var i = 0;i<selectors.length;i++){ //遍历所有可能性
|
for(var i = 0;i<selectors.length;i++){ //遍历所有可能性
|
||||||
var ids = selector2id(selectors[i]);
|
var ids = selector2id(selectors[i]);
|
||||||
console.log('id**',id,_data[id]);
|
// console.log('ids#',ids);
|
||||||
for(var j=0;j<ids.length;j++){
|
for(var j=0;j<ids.length;j++){
|
||||||
var id = ids[j];
|
var id = ids[j];
|
||||||
if(_data[id]){ //直接匹配称呼
|
if(_data[id]){ //直接匹配称呼
|
||||||
result.push(_data[id][0]);
|
result.push(_data[id][0]);
|
||||||
}else{ //高级查找
|
}else{ //高级查找
|
||||||
// console.log('id###');
|
|
||||||
var data = getDataById(id); //忽略属性查找
|
var data = getDataById(id); //忽略属性查找
|
||||||
// if(!data.length){
|
if(!data.length){
|
||||||
// id = id.replace(/[ol]/g,'x');
|
id = id.replace(/[ol]/g,'x');
|
||||||
// data = getDataById(id);
|
data = getDataById(id);
|
||||||
// }
|
}
|
||||||
if(!data.length){
|
if(!data.length){
|
||||||
var l = id.replace(/x/g,'l');
|
var l = id.replace(/x/g,'l');
|
||||||
data = getDataById(l);
|
data = getDataById(l);
|
||||||
@ -553,6 +534,5 @@
|
|||||||
//老婆的爸爸的女儿
|
//老婆的爸爸的女儿
|
||||||
//表哥的表哥
|
//表哥的表哥
|
||||||
//表哥的表妹
|
//表哥的表妹
|
||||||
|
|
||||||
//大舅的女儿
|
//大舅的女儿
|
||||||
console.log(relationship('表哥的表姐'));
|
console.log(relationship('表哥的表姐'));
|
Loading…
x
Reference in New Issue
Block a user