diff --git a/dist/relationship.js b/dist/relationship.js index 7cfd16c..a2dd183 100644 --- a/dist/relationship.js +++ b/dist/relationship.js @@ -24,6 +24,43 @@ exp:/(,[ds],(.+),[ds])&[ol]/g, str:'$1' }, + /* 兄弟姐妹 */ + {//哥哥姐姐的哥哥姐姐还是自己的哥哥姐姐(年龄判断) + exp:/(,o[sb])+(,o[sb])/, + str:'$2' + }, + {//弟弟妹妹的弟弟妹妹还是自己的弟弟妹妹(年龄判断) + exp:/(,l[sb])+(,l[sb])/, + str:'$2' + }, + {//如果自己是男性,兄弟姐妹的兄弟就是自己的兄弟或自己 + exp:/^(.*)(,[fh1])(,[olx][sb])+,[olx]b(.*)$/, + str:'$1$2,xb$4#$1$2$4' + }, + {//如果自己是女性,兄弟姐妹的姐妹就是自己的姐妹或自己 + exp:/^(.*)(,[mw0])(,[olx][sb])+,[olx]s(.*)$/, + str:'$1$2,xs$4#$1$2$4' + }, + {//如果自己是男性,兄弟姐妹的姐妹就是自己的姐妹 + exp:/(,[fh1])(,[olx][sb])+,[olx]s/g, + str:'$1,xs' + }, + {//如果自己是女性,兄弟姐妹的兄弟就是自己的兄弟 + exp:/(,[mw0])(,[olx][sb])+,[olx]b/g, + str:'$1,xb' + }, + {//不知道性别,兄弟姐妹的兄弟是自己或兄弟 + exp:/^,[olx][sb],[olx]b(.+)?$/, + str:'$1#,xb$1' + }, + {//不知道性别,兄弟姐妹的姐妹是自己或姐妹 + exp:/^,[olx][sb],[olx]s(.+)?$/, + str:'$1#,xs$1' + }, + {//将复合称谓拆分 + exp:/^,x([sb])$/, + str:',o$1#,l$1' + }, /* 父母 */ {//母亲的丈夫是自己的父亲 exp:/m,h/g, @@ -70,43 +107,6 @@ exp:/^,[mf],d(.+)?$/, str:',0$1#,xs$1' }, - /* 兄弟姐妹 */ - {//哥哥姐姐的哥哥姐姐还是自己的哥哥姐姐(年龄判断) - exp:/(,o[sb])+(,o[sb])/, - str:'$2' - }, - {//弟弟妹妹的弟弟妹妹还是自己的弟弟妹妹(年龄判断) - exp:/(,l[sb])+(,l[sb])/, - str:'$2' - }, - {//如果自己是男性,兄弟姐妹的兄弟就是自己的兄弟或自己 - exp:/^(.*)(,[fh1])(,[olx][sb])+,[olx]b(.*)$/, - str:'$1$2,xb$4#$1$2$4' - }, - {//如果自己是女性,兄弟姐妹的姐妹就是自己的姐妹或自己 - exp:/^(.*)(,[mw0])(,[olx][sb])+,[olx]s(.*)$/, - str:'$1$2,xs$4#$1$2$4' - }, - {//如果自己是男性,兄弟姐妹的姐妹就是自己的姐妹 - exp:/(,[fh1])(,[olx][sb])+,[olx]s/g, - str:'$1,xs' - }, - {//如果自己是女性,兄弟姐妹的兄弟就是自己的兄弟 - exp:/(,[mw0])(,[olx][sb])+,[olx]b/g, - str:'$1,xb' - }, - {//不知道性别,兄弟姐妹的兄弟是自己或兄弟 - exp:/^,[olx][sb],[olx]b(.+)?$/, - str:'$1#,xb$1' - }, - {//不知道性别,兄弟姐妹的姐妹是自己或姐妹 - exp:/^,[olx][sb],[olx]s(.+)?$/, - str:'$1#,xs$1' - }, - {//将复合称谓拆分 - exp:/^,x([sb])$/, - str:',o$1#,l$1' - }, /* 孩子 */ {//孩子的姐妹是自己的女儿(年龄判断) exp:/,[ds]&o,ob/g, @@ -947,12 +947,12 @@ s = selector; for(var i in _filter){ var item = _filter[i]; - selector = selector.replace(item['exp'],item['str']); // console.log('filter#',item['exp'],selector); + selector = selector.replace(item['exp'],item['str']); if(selector.indexOf('#')>-1){ var arr = selector.split('#'); - for(var i=0;i-1&&(!l&&f.length||d.push(l),h=!0)}if(h||(m=!1),x.length){for(var e=[],l=0;l-1&&(s=","+f+s),s.match(/,[w0],w|,[h1],h/))return!1;var b=function(s){var f="";if(!m[s]){m[s]=!0;var w=!0;do{f=s;for(var h in d){var l=d[h];if(s=s.replace(l.exp,l.str),s.indexOf("#")>-1){for(var o=s.split("#"),h=0;h-1?m="&l":s.indexOf("&l")>-1&&(m="&o"),s){s=s.replace(/&[ol]/g,""),f=f?1:0;var b=(","+f+","+s).replace(/,[fhs]|,[olx]b/g,",1").replace(/,[mwd]|,[olx]s/g,",0");b=b.substring(0,b.lastIndexOf(","));for(var d=s.split(",").reverse(),w=b.split(",").reverse(),h=[],l=0;l-1&&(!l&&f.length||d.push(l),h=!0)}if(h||(m=!1),x.length){for(var e=[],l=0;l-1&&(s=","+f+s),s.match(/,[w0],w|,[h1],h/))return!1;var b=function(s){var f="";if(!m[s]){m[s]=!0;var w=!0;do{f=s;for(var h in d){var l=d[h];if(s=s.replace(l.exp,l.str),s.indexOf("#")>-1){for(var o=s.split("#"),e=0;e-1?m="&l":s.indexOf("&l")>-1&&(m="&o"),s){s=s.replace(/&[ol]/g,""),f=f?1:0;var b=(","+f+","+s).replace(/,[fhs]|,[olx]b/g,",1").replace(/,[mwd]|,[olx]s/g,",0");b=b.substring(0,b.lastIndexOf(","));for(var d=s.split(",").reverse(),w=b.split(",").reverse(),h=[],l=0;l - +