diff --git a/script/relationship.js b/script/relationship.js index 9ef3281..cbe28a2 100644 --- a/script/relationship.js +++ b/script/relationship.js @@ -19,7 +19,7 @@ }, {//不知道性别,子女的妈妈是自己或妻子 exp:/^,[ds],m(.+)$/, - str:',$1#,w$1' + str:'$1#,w$1' }, {//不知道性别,子女的妈妈是自己或妻子 exp:/^,[ds],m$/, @@ -27,14 +27,14 @@ }, {//不知道性别,子女的爸爸是自己或丈夫 exp:/^,[ds],f(.+)$/, - str:',$1#,h$1' + str:'$1#,h$1' }, {//不知道性别,子女的爸爸是自己或丈夫 exp:/^,[ds],f/g, str:',#,h' }, {//夫妻的孩子就是自己的孩子 - exp:/(.+),[wh],([ds])/g, + exp:/(.+),[wh](,[ds])/g, str:'$1,$2' }, {//夫妻的对方是自己 @@ -42,7 +42,7 @@ str:'' }, {//兄弟的父母就是自己的父母 - exp:/[xol][sb],([mf])/g, + exp:/,[xol][sb](,[mf])/g, str:'$1' }, {//母亲的丈夫是自己的父亲 @@ -53,6 +53,30 @@ exp:/f,w/g, str:'m', }, + {//表亲的关系 + exp:/^(.+)&o(.+)&o/g, + str:'$1$2&o', + }, + {//表亲的关系 + exp:/^(.+)&l(.+)&l/g, + str:'$1$2&l', + }, + {//表亲的关系 + exp:/^(.+)&o(.+)&l/g, + str:'$1$2', + }, + {//表亲的关系 + exp:/^(.+)&l(.+)&o/g, + str:'$1$2', + }, + {//孩子的姐妹是自己的女儿 + exp:/(,[ds]&o),o[sb]/g, + str:'$1', + }, + {//孩子的兄弟是自己的儿子 + exp:/(,[ds]&l),l[sb]/g, + str:'$1', + }, {//孩子的姐妹是自己的女儿 exp:/,[ds](&[ol])?,[olx]s/g, str:',d', @@ -61,7 +85,14 @@ exp:/,[ds](&[ol])?,[olx]b/g, str:',s', }, - + {//哥哥姐姐的哥哥姐姐还是自己的哥哥姐姐 + exp:/,o[sb](,o[sb])/, + str:'$1', + }, + {//弟弟妹妹的弟弟妹妹还是自己的弟弟妹妹 + exp:/,l[sb](,l[sb])/, + str:'$1', + }, {//如果自己是男性,兄弟姐妹的兄弟就是自己的兄弟或自己 con:/(,[fhs]|([olx]b)),[olx][sb],[olx]b/, exp:/^(.+)?,[olx][sb],[olx]b(.+)?$/, @@ -82,7 +113,7 @@ exp:/^(.+)?,[olx][sb],[olx]s(.+)?$/, str:'$1,xs$2#$1$2', }, - {//不知道性别,兄弟姐妹的兄弟是自己或兄弟 + {//不知道性别,兄弟姐妹的兄弟是自己或兄弟///////// exp:/^,[olx][sb],[olx]b(.+)$/, str:',$1#,xb$1' }, @@ -98,6 +129,10 @@ exp:/^,[olx][sb],[olx]s$/, str:',#,xs' }, + {//父母的子女年龄判断不准确,可过滤 + exp:/(,[mf],[ds])&[ol]/, + str:'$1' + }, {//如果自己是男性,父母的儿子是自己或者兄弟 con:/(,[fhs]|([olx]b)),[mf],s/, exp:/^(.+)?,[mf],s(.+)$/, @@ -108,23 +143,31 @@ exp:/^(.+)?,[mf],d(.+)$/, str:'$1$2#$1,xs$2' }, - {//如果自己是女性,父母的儿子是自己或者兄弟 + {//如果自己是女性,父母的儿子是自己兄弟 con:/(,[mwd]|([olx]s)),[mf],s/, exp:/,[mf],s/, str:',xb' }, - {//如果自己是男性,父母的女儿是自己或者姐妹 + {//如果自己是男性,父母的女儿是自己姐妹 con:/(,[fhs]|([olx]b)),[mf],d/, exp:/,[mf],d/, str:',xs' }, {//父母的儿子是自己或兄妹 - exp:/^,[mf],s,(.+)$/, - str:',$1#,xb,$1' + exp:/^(.+),[mf],s$/, + str:'$1#$1,xb' + }, + {//父母的女儿是自己或者姐妹 + exp:/^(.+),[mf],d$/, + str:'$1#$1,xs' + }, + {//父母的儿子是自己或兄弟 + exp:/^,[mf],s(.+)$/, + str:'$1#,xb$1' }, {//父母的女儿是自己或者姐妹 exp:/^,[mf],d(.+)$/, - str:',$1#,xs$1' + str:'$1#,xs$1' }, {//父母的儿子是自己或兄妹 exp:/^,[mf],s$/, @@ -374,7 +417,7 @@ function getSelectors(str){ var lists = str.split('的'); var result = []; //所有可能性 - _attr = ''; //清除全局变量 + // _attr = ''; //清除全局变量 while(lists.length){ var name = lists.shift(); //当前匹配词 var arr = []; //当前匹配词可能性 @@ -398,21 +441,21 @@ } } } - if(result.length){ //对年龄进行智能过滤 - var item = result[0]; - var o = item.match(/(&o)|o[sb]/); - var l = item.match(/(&l)|l[sb]/); - if(o&&l){ - var filter = /&[ol]/g; - for(var i=0;i-1){ var arr = selector.split('#'); for(var i=0;i