兄弟姐妹间短关系问题的修复
This commit is contained in:
parent
bd917c3865
commit
2be1878cbd
@ -82,7 +82,22 @@
|
|||||||
exp:/^(.+)?,[olx][sb],[olx]s(.+)?$/,
|
exp:/^(.+)?,[olx][sb],[olx]s(.+)?$/,
|
||||||
str:'$1,xs$2#$1$2',
|
str:'$1,xs$2#$1$2',
|
||||||
},
|
},
|
||||||
|
{//不知道性别,兄弟姐妹的兄弟是自己或兄弟
|
||||||
|
exp:/^,[olx][sb],[olx]b(.+)$/,
|
||||||
|
str:',$1#,xb$1'
|
||||||
|
},
|
||||||
|
{//不知道性别,兄弟姐妹的兄弟是自己或兄弟
|
||||||
|
exp:/^,[olx][sb],[olx]b$/,
|
||||||
|
str:',#,xb'
|
||||||
|
},
|
||||||
|
{//不知道性别,兄弟姐妹的姐妹是自己或姐妹
|
||||||
|
exp:/^,[olx][sb],[olx]s(.+)$/,
|
||||||
|
str:',$1#,xs$1'
|
||||||
|
},
|
||||||
|
{//不知道性别,兄弟姐妹的姐妹是自己或姐妹
|
||||||
|
exp:/^,[olx][sb],[olx]s$/,
|
||||||
|
str:',#,xs'
|
||||||
|
},
|
||||||
{//如果自己是男性,父母的儿子是自己或者兄弟
|
{//如果自己是男性,父母的儿子是自己或者兄弟
|
||||||
con:/(,[fhs]|([olx]b)),[mf],s/,
|
con:/(,[fhs]|([olx]b)),[mf],s/,
|
||||||
exp:/^(.+)?,[mf],s(.+)$/,
|
exp:/^(.+)?,[mf],s(.+)$/,
|
||||||
@ -361,6 +376,7 @@
|
|||||||
function getSelectors(str){
|
function getSelectors(str){
|
||||||
var lists = str.split('的');
|
var lists = str.split('的');
|
||||||
var result = []; //所有可能性
|
var result = []; //所有可能性
|
||||||
|
_attr = ''; //清除全局变量
|
||||||
while(lists.length){
|
while(lists.length){
|
||||||
var name = lists.shift(); //当前匹配词
|
var name = lists.shift(); //当前匹配词
|
||||||
var arr = []; //当前匹配词可能性
|
var arr = []; //当前匹配词可能性
|
||||||
@ -394,9 +410,9 @@
|
|||||||
result[i]=result[i].replace(filter,'');
|
result[i]=result[i].replace(filter,'');
|
||||||
}
|
}
|
||||||
}else if(o&&!l){
|
}else if(o&&!l){
|
||||||
_attr = '&o';
|
_attr = 'o';
|
||||||
}else if(!o&&l){
|
}else if(!o&&l){
|
||||||
_attr = '&l';
|
_attr = 'l';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
@ -427,10 +443,17 @@
|
|||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
selector = selector.substr(1); //去前面逗号
|
selector = selector.substr(1); //去前面逗号
|
||||||
if(selector.match(/,[ds]$/)&&_attr){
|
if(_attr&&!selector){ //如果存在属性,不可能为自己
|
||||||
selector += _attr;
|
}else{
|
||||||
|
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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
getId(selector);
|
getId(selector);
|
||||||
@ -462,7 +485,6 @@
|
|||||||
result.push(_data[id][0]);
|
result.push(_data[id][0]);
|
||||||
}else{ //高级查找
|
}else{ //高级查找
|
||||||
var data = getDataById(id); //忽略属性查找
|
var data = getDataById(id); //忽略属性查找
|
||||||
console.log(data);
|
|
||||||
if(!data.length){ //当无精确数据时,忽略年龄条件查找
|
if(!data.length){ //当无精确数据时,忽略年龄条件查找
|
||||||
id = id.replace(/&[ol]/g,'');
|
id = id.replace(/&[ol]/g,'');
|
||||||
data = getDataById(id);
|
data = getDataById(id);
|
||||||
@ -489,4 +511,4 @@
|
|||||||
window.relationship = relationship;
|
window.relationship = relationship;
|
||||||
})(window);
|
})(window);
|
||||||
|
|
||||||
console.log(relationship('儿子的外公'));
|
console.log(relationship('弟弟的弟弟'));
|
Loading…
x
Reference in New Issue
Block a user