修复妈妈的儿子和儿子的妈妈关系定位错误的bug

This commit is contained in:
mumuy 2016-03-16 20:33:37 +08:00
parent 97c3f6489c
commit c968518fd6

View File

@ -17,6 +17,14 @@
exp:/(,[fhs]|([olx]b)),[ds](&[ol])?,m/g, exp:/(,[fhs]|([olx]b)),[ds](&[ol])?,m/g,
str:'$1,w' str:'$1,w'
}, },
{//不知道性别,女儿或儿子的妈妈是自己或妻子
exp:/^,[ds],m/g,
str:',#,w'
},
{//不知道性别,女儿或儿子的妈妈是自己或丈夫
exp:/^,[ds],f/g,
str:',#,h'
},
{//夫妻的孩子就是自己的孩子 {//夫妻的孩子就是自己的孩子
exp:/,[wh],([ds])/g, exp:/,[wh],([ds])/g,
str:',$1' str:',$1'
@ -69,12 +77,12 @@
{//如果自己是男性,父母的儿子是自己或者兄弟 {//如果自己是男性,父母的儿子是自己或者兄弟
con:/(,[fhs]|([olx]b)),[mf],s/, con:/(,[fhs]|([olx]b)),[mf],s/,
exp:/^(.+),[mf],s(.+)$/, exp:/^(.+)?,[mf],s(.+)$/,
str:'$1$2#$1,xb$2' str:'$1$2#$1,xb$2'
}, },
{//如果自己是女性,父母的女儿是自己或者姐妹 {//如果自己是女性,父母的女儿是自己或者姐妹
con:/(,[mwd]|([olx]s)),[mf],d/, con:/(,[mwd]|([olx]s)),[mf],d/,
exp:/^(.+),[mf],d(.+)$/, exp:/^(.+)?,[mf],d(.+)$/,
str:'$1$2#$1,xs$2' str:'$1$2#$1,xs$2'
}, },
{//如果自己是女性,父母的儿子是自己或者兄弟 {//如果自己是女性,父母的儿子是自己或者兄弟
@ -87,14 +95,22 @@
exp:/,[mf],d/, exp:/,[mf],d/,
str:',xs' str:',xs'
}, },
{//父母的女儿是姐妹 {//父母的儿子是自己或兄妹
exp:/^,[mf],s,(.+)$/,
str:',$1#,xb,$1'
},
{//父母的女儿是自己或者姐妹
exp:/^,[mf],d(.+)$/,
str:',$1#,xs$1'
},
{//父母的儿子是自己或兄妹
exp:/^,[mf],s$/, exp:/^,[mf],s$/,
str:',#,xb' str:',#,xb'
}, },
{//父母的女儿是自己或者姐妹 {//父母的女儿是自己或者姐妹
exp:/^,[mf],d$/, exp:/^,[mf],d$/,
str:',#,xs' str:',#,xs'
} },
]; ];
var _data = { var _data = {
@ -427,17 +443,18 @@
function relationship(str){ function relationship(str){
var selectors = getSelectors(str); var selectors = getSelectors(str);
// console.log(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]);
for(var j=0;j<ids.length;j++){ for(var j=0;j<ids.length;j++){
var id = ids[j]; var id = ids[j];
// console.log(id); // console.log('id',id,_data[id]);
if(_data[id]){ //直接匹配称呼 if(_data[id]){ //直接匹配称呼
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);
@ -464,4 +481,4 @@
window.relationship = relationship; window.relationship = relationship;
})(window); })(window);
console.log(relationship('表姐的妹妹')); console.log(relationship('妈妈的儿子'));