updated 调整关系替换顺序,避免数据冗余

This commit is contained in:
mumuy committed 2017-02-03 09:39:01 +08:00
1 parent 06669774b2
commit 0e2e7502ba
5 files changed
+83 -82

No files matched your search

+40 -40
View File
@@ -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<arr.length;i++){
getId(arr[i]);
for(var j=0;j<arr.length;j++){
getId(arr[j]);
}
status=false;
break;
+1 -1
View File
@@ -1 +1 @@
!function(s,f){"object"==typeof module&&module.exports?module.exports=f():s.relationship=f()}("undefined"!=typeof window?window:this,function(){function s(s){s=s.replace(/[二|三|四|五|六|七|八|九|十]{1,2}/g,"x");for(var f=s.split("的"),x=[],m=!0;f.length;){var b=f.shift(),d=[],h=!1;for(var l in w){var o=w[l];o.indexOf(b)>-1&&(!l&&f.length||d.push(l),h=!0)}if(h||(m=!1),x.length){for(var e=[],l=0;l<x.length;l++)for(var r=0;r<d.length;r++)e.push(x[l]+","+d[r]);x=e}else for(var l=0;l<d.length;l++)x.push(","+d[l])}return m?x:[]}function f(s,f){var x=[],m={};if(f<0&&(0==s.indexOf(",w")?f=1:0==s.indexOf(",h")&&(f=0)),f>-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<o.length;h++)b(o[h]);w=!1;break}}}while(f!=s);if(w){if(s.match(/,[w0],w|,[h1],h/))return!1;s=s.replace(/,[01]/,"").substr(1),x.push(s)}}};return b(s),x}function x(s){var f=[],x=/&[olx]/g,m=function(s){var f=[];for(var m in w)m.replace(x,"")==s&&f.push(w[m][0]);return f};if(w[s])f.push(w[s][0]);else if(f=m(s),f.length||(s=s.replace(/&[ol]/g,""),f=m(s)),f.length||(s=s.replace(/[ol]/g,"x"),f=m(s)),!f.length){var b=s.replace(/x/g,"l");f=m(b);var d=s.replace(/x/g,"o");f=f.concat(m(d))}return f}function m(s,f){var x={f:["d","s"],m:["d","s"],h:["w",""],w:["","h"],s:["m","f"],d:["m","f"],lb:["os","ob"],ob:["ls","lb"],xb:["xs","xb"],ls:["os","ob"],os:["ls","lb"],xs:["xs","xb"]},m="";if(s.indexOf("&o")>-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<d.length;l++)h.push(x[d[l]][w[l]]);return h.join(",")+m}return""}function b(s){for(var f=s.split(","),x=[],m=0;m<f.length;m++){var b=f[m].replace(/&[ol]/,"");x.push(w[b][0])}return x.join("的")}var d=[{exp:/^(.+)&o([^#]+)&l/g,str:"$1$2"},{exp:/^(.+)&l([^#]+)&o/g,str:"$1$2"},{exp:/(,[ds],(.+),[ds])&[ol]/g,str:"$1"},{exp:/m,h/g,str:"f"},{exp:/f,w/g,str:"m"},{exp:/,[xol][sb](,[mf])/g,str:"$1"},{exp:/,[mf],d&([ol])/,str:",$1s"},{exp:/,[mf],s&([ol])/,str:",$1b"},{exp:/^(.*)(,[fh1]|[xol]b),[mf],s(.*)$/,str:"$1$2,xb$3#$1$2$3"},{exp:/^(.*)(,[mw0]|[xol]s),[mf],d(.*)$/,str:"$1$2,xs$3#$1$2$3"},{exp:/(,[mw0]|[xol]s),[mf],s/,str:"$1,xb"},{exp:/(,[fh1]|[xol]b),[mf],d/,str:"$1,xs"},{exp:/^,[mf],s(.+)?$/,str:",1$1#,xb$1"},{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,str:",s&o"},{exp:/,[ds]&o,os/g,str:",d&o"},{exp:/,[ds]&l,lb/g,str:",s&l"},{exp:/,[ds]&l,ls/g,str:",d&l"},{exp:/,[ds](&[ol])?,[olx]s/g,str:",d"},{exp:/,[ds](&[ol])?,[olx]b/g,str:",s"},{exp:/(,[mwd0](&[ol])?|[olx]s),[ds](&[ol])?,m/g,str:"$1"},{exp:/(,[mwd0](&[ol])?|[olx]s),[ds](&[ol])?,f/g,str:"$1,h"},{exp:/(,[fhs1](&[ol])?|[olx]b),[ds](&[ol])?,f/g,str:"$1"},{exp:/(,[fhs1](&[ol])?|[olx]b),[ds](&[ol])?,m/g,str:"$1,w"},{exp:/^,[ds],m(.+)?$/,str:"$1#,w$1"},{exp:/^,[ds],f(.+)?$/,str:"$1#,h$1"},{exp:/,[wh](,[ds])/g,str:"$1"},{exp:/,w,h|,h,w/g,str:""},{exp:/(.+)?\[(.+)\|(.+)\](.+)?/g,str:"$1$2$4#$1$3$4"}],w={"":["自己","我"],"[s|d]":["子女","儿女","小孩","孩子"],"[f|m]":["父母","爹娘","爹妈","爸妈","高堂"],f:["爸爸","父亲","阿爸","老爸","老窦","爹","爹爹","爹地","爹啲","老爹","大大","老爷子"],"f,f":["爷爷","祖父","阿爷","奶爷","阿公"],"f,f,f":["曾祖父","太爷","太爷爷","太公","祖公","祖奶爷"],"f,f,f,f":["高祖父","老太爷","祖太爷","祖太爷爷","祖太公"],"f,f,f,f,f":["天祖父"],"f,f,f,f,f,f":["烈祖父"],"f,f,f,f,f,m":["烈祖母"],"f,f,f,f,f,f,f":["太祖父"],"f,f,f,f,f,f,m":["太祖母"],"f,f,f,f,f,f,f,f":["远祖父"],"f,f,f,f,f,f,f,m":["远祖母"],"f,f,f,f,f,f,f,f,f":["鼻祖父"],"f,f,f,f,f,f,f,f,m":["鼻祖母"],"f,f,f,f,m":["天祖母"],"f,f,f,f,ob":["伯高祖父"],"f,f,f,f,ob,w":["伯高祖母"],"f,f,f,f,lb":["叔高祖父"],"f,f,f,f,lb,w":["叔高祖母"],"f,f,f,f,xs":["姑高祖母"],"f,f,f,f,xs,h":["姑高祖父"],"f,f,f,m":["高祖母","老太太","祖太太","祖太奶","祖太奶奶","祖太婆"],"f,f,f,m,xs":["姨高祖母"],"f,f,f,m,xs,h":["姨高祖父"],"f,f,f,ob":["曾伯祖父","曾伯父","伯曾祖父","伯公太","伯太爷"],"f,f,f,ob,w":["曾伯祖母","曾伯母","伯曾祖母","伯婆太","伯太太"],"f,f,f,lb":["曾叔祖父","曾叔父","叔曾祖父","叔公太","叔太爷"],"f,f,f,lb,w":["曾叔祖母","曾叔母","叔曾祖母Line truncated
!function(s,f){"object"==typeof module&&module.exports?module.exports=f():s.relationship=f()}("undefined"!=typeof window?window:this,function(){function s(s){s=s.replace(/[二|三|四|五|六|七|八|九|十]{1,2}/g,"x");for(var f=s.split("的"),x=[],m=!0;f.length;){var b=f.shift(),d=[],h=!1;for(var l in w){var o=w[l];o.indexOf(b)>-1&&(!l&&f.length||d.push(l),h=!0)}if(h||(m=!1),x.length){for(var e=[],l=0;l<x.length;l++)for(var r=0;r<d.length;r++)e.push(x[l]+","+d[r]);x=e}else for(var l=0;l<d.length;l++)x.push(","+d[l])}return m?x:[]}function f(s,f){var x=[],m={};if(f<0&&(0==s.indexOf(",w")?f=1:0==s.indexOf(",h")&&(f=0)),f>-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<o.length;e++)b(o[e]);w=!1;break}}}while(f!=s);if(w){if(s.match(/,[w0],w|,[h1],h/))return!1;s=s.replace(/,[01]/,"").substr(1),x.push(s)}}};return b(s),x}function x(s){var f=[],x=/&[olx]/g,m=function(s){var f=[];for(var m in w)m.replace(x,"")==s&&f.push(w[m][0]);return f};if(w[s])f.push(w[s][0]);else if(f=m(s),f.length||(s=s.replace(/&[ol]/g,""),f=m(s)),f.length||(s=s.replace(/[ol]/g,"x"),f=m(s)),!f.length){var b=s.replace(/x/g,"l");f=m(b);var d=s.replace(/x/g,"o");f=f.concat(m(d))}return f}function m(s,f){var x={f:["d","s"],m:["d","s"],h:["w",""],w:["","h"],s:["m","f"],d:["m","f"],lb:["os","ob"],ob:["ls","lb"],xb:["xs","xb"],ls:["os","ob"],os:["ls","lb"],xs:["xs","xb"]},m="";if(s.indexOf("&o")>-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<d.length;l++)h.push(x[d[l]][w[l]]);return h.join(",")+m}return""}function b(s){for(var f=s.split(","),x=[],m=0;m<f.length;m++){var b=f[m].replace(/&[ol]/,"");x.push(w[b][0])}return x.join("的")}var d=[{exp:/^(.+)&o([^#]+)&l/g,str:"$1$2"},{exp:/^(.+)&l([^#]+)&o/g,str:"$1$2"},{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,str:"f"},{exp:/f,w/g,str:"m"},{exp:/,[xol][sb](,[mf])/g,str:"$1"},{exp:/,[mf],d&([ol])/,str:",$1s"},{exp:/,[mf],s&([ol])/,str:",$1b"},{exp:/^(.*)(,[fh1]|[xol]b),[mf],s(.*)$/,str:"$1$2,xb$3#$1$2$3"},{exp:/^(.*)(,[mw0]|[xol]s),[mf],d(.*)$/,str:"$1$2,xs$3#$1$2$3"},{exp:/(,[mw0]|[xol]s),[mf],s/,str:"$1,xb"},{exp:/(,[fh1]|[xol]b),[mf],d/,str:"$1,xs"},{exp:/^,[mf],s(.+)?$/,str:",1$1#,xb$1"},{exp:/^,[mf],d(.+)?$/,str:",0$1#,xs$1"},{exp:/,[ds]&o,ob/g,str:",s&o"},{exp:/,[ds]&o,os/g,str:",d&o"},{exp:/,[ds]&l,lb/g,str:",s&l"},{exp:/,[ds]&l,ls/g,str:",d&l"},{exp:/,[ds](&[ol])?,[olx]s/g,str:",d"},{exp:/,[ds](&[ol])?,[olx]b/g,str:",s"},{exp:/(,[mwd0](&[ol])?|[olx]s),[ds](&[ol])?,m/g,str:"$1"},{exp:/(,[mwd0](&[ol])?|[olx]s),[ds](&[ol])?,f/g,str:"$1,h"},{exp:/(,[fhs1](&[ol])?|[olx]b),[ds](&[ol])?,f/g,str:"$1"},{exp:/(,[fhs1](&[ol])?|[olx]b),[ds](&[ol])?,m/g,str:"$1,w"},{exp:/^,[ds],m(.+)?$/,str:"$1#,w$1"},{exp:/^,[ds],f(.+)?$/,str:"$1#,h$1"},{exp:/,[wh](,[ds])/g,str:"$1"},{exp:/,w,h|,h,w/g,str:""},{exp:/(.+)?\[(.+)\|(.+)\](.+)?/g,str:"$1$2$4#$1$3$4"}],w={"":["自己","我"],"[s|d]":["子女","儿女","小孩","孩子"],"[f|m]":["父母","爹娘","爹妈","爸妈","高堂"],f:["爸爸","父亲","阿爸","老爸","老窦","爹","爹爹","爹地","爹啲","老爹","大大","老爷子"],"f,f":["爷爷","祖父","阿爷","奶爷","阿公"],"f,f,f":["曾祖父","太爷","太爷爷","太公","祖公","祖奶爷"],"f,f,f,f":["高祖父","老太爷","祖太爷","祖太爷爷","祖太公"],"f,f,f,f,f":["天祖父"],"f,f,f,f,f,f":["烈祖父"],"f,f,f,f,f,m":["烈祖母"],"f,f,f,f,f,f,f":["太祖父"],"f,f,f,f,f,f,m":["太祖母"],"f,f,f,f,f,f,f,f":["远祖父"],"f,f,f,f,f,f,f,m":["远祖母"],"f,f,f,f,f,f,f,f,f":["鼻祖父"],"f,f,f,f,f,f,f,f,m":["鼻祖母"],"f,f,f,f,m":["天祖母"],"f,f,f,f,ob":["伯高祖父"],"f,f,f,f,ob,w":["伯高祖母"],"f,f,f,f,lb":["叔高祖父"],"f,f,f,f,lb,w":["叔高祖母"],"f,f,f,f,xs":["姑高祖母"],"f,f,f,f,xs,h":["姑高祖父"],"f,f,f,m":["高祖母","老太太","祖太太","祖太奶","祖太奶奶","祖太婆"],"f,f,f,m,xs":["姨高祖母"],"f,f,f,m,xs,h":["姨高祖父"],"f,f,f,ob":["曾伯祖父","曾伯父","伯曾祖父","伯公太","伯太爷"],"f,f,f,ob,w":["曾伯祖母","曾伯母","伯曾祖母","伯婆太","伯太太"],"f,f,f,lb":["曾叔祖父","曾叔父","叔曾祖父","叔公太","叔太爷"],"f,f,f,lb,w":["曾叔祖母","曾叔母","叔曾祖母Line truncated
+1 -1
View File
@@ -81,7 +81,7 @@
</div>
</div>
<script src="script/common.js"></script>
<script src="dist/relationship.min.js"></script>
<script src="script/relationship.js"></script>
<script>
(function(){
var $type = document.getElementsByName('type');
+40 -40
View File
@@ -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<arr.length;i++){
getId(arr[i]);
for(var j=0;j<arr.length;j++){
getId(arr[j]);
}
status=false;
break;
+1
View File
@@ -13,6 +13,7 @@ test('relationship.js show to be tested', function (t) {
t.deepEqual(relationship({text:'表姐的哥哥',sex:1}),['姑表哥','舅表哥','姨表哥']);
t.deepEqual(relationship({text:'表姐的妹妹',sex:1}),['姑表姐','姑表妹','舅表姐','舅表妹','姨表姐','姨表妹']);
t.deepEqual(relationship({text:'老公的老婆的儿子的爸爸',sex:0}),['老公']);
t.deepEqual(relationship({text:'哥哥的弟弟的爸爸的儿子',sex:1}),['兄弟','自己']);
t.deepEqual(relationship({text:'爸爸的舅舅',sex:0,reverse:true}),['外甥孙女']);
t.deepEqual(relationship({text:'舅爷爷',type:'chain'}),['爸爸的妈妈的兄弟']);