updated 调整关系替换顺序,避免数据冗余
This commit is contained in:
1 parent
06669774b2
commit
0e2e7502ba
5 files changed
+83
-82
No files matched your search
Vendored
+40
-40
@@ -24,6 +24,43 @@
|
|||||||
exp:/(,[ds],(.+),[ds])&[ol]/g,
|
exp:/(,[ds],(.+),[ds])&[ol]/g,
|
||||||
str:'$1'
|
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,
|
exp:/m,h/g,
|
||||||
@@ -70,43 +107,6 @@
|
|||||||
exp:/^,[mf],d(.+)?$/,
|
exp:/^,[mf],d(.+)?$/,
|
||||||
str:',0$1#,xs$1'
|
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,
|
exp:/,[ds]&o,ob/g,
|
||||||
@@ -947,12 +947,12 @@
|
|||||||
s = selector;
|
s = selector;
|
||||||
for(var i in _filter){
|
for(var i in _filter){
|
||||||
var item = _filter[i];
|
var item = _filter[i];
|
||||||
selector = selector.replace(item['exp'],item['str']);
|
|
||||||
// console.log('filter#',item['exp'],selector);
|
// console.log('filter#',item['exp'],selector);
|
||||||
|
selector = selector.replace(item['exp'],item['str']);
|
||||||
if(selector.indexOf('#')>-1){
|
if(selector.indexOf('#')>-1){
|
||||||
var arr = selector.split('#');
|
var arr = selector.split('#');
|
||||||
for(var i=0;i<arr.length;i++){
|
for(var j=0;j<arr.length;j++){
|
||||||
getId(arr[i]);
|
getId(arr[j]);
|
||||||
}
|
}
|
||||||
status=false;
|
status=false;
|
||||||
break;
|
break;
|
||||||
|
|||||||
Vendored
+1
-1
@@ -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
@@ -81,7 +81,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script src="script/common.js"></script>
|
<script src="script/common.js"></script>
|
||||||
<script src="dist/relationship.min.js"></script>
|
<script src="script/relationship.js"></script>
|
||||||
<script>
|
<script>
|
||||||
(function(){
|
(function(){
|
||||||
var $type = document.getElementsByName('type');
|
var $type = document.getElementsByName('type');
|
||||||
|
|||||||
+40
-40
@@ -24,6 +24,43 @@
|
|||||||
exp:/(,[ds],(.+),[ds])&[ol]/g,
|
exp:/(,[ds],(.+),[ds])&[ol]/g,
|
||||||
str:'$1'
|
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,
|
exp:/m,h/g,
|
||||||
@@ -70,43 +107,6 @@
|
|||||||
exp:/^,[mf],d(.+)?$/,
|
exp:/^,[mf],d(.+)?$/,
|
||||||
str:',0$1#,xs$1'
|
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,
|
exp:/,[ds]&o,ob/g,
|
||||||
@@ -947,12 +947,12 @@
|
|||||||
s = selector;
|
s = selector;
|
||||||
for(var i in _filter){
|
for(var i in _filter){
|
||||||
var item = _filter[i];
|
var item = _filter[i];
|
||||||
selector = selector.replace(item['exp'],item['str']);
|
|
||||||
// console.log('filter#',item['exp'],selector);
|
// console.log('filter#',item['exp'],selector);
|
||||||
|
selector = selector.replace(item['exp'],item['str']);
|
||||||
if(selector.indexOf('#')>-1){
|
if(selector.indexOf('#')>-1){
|
||||||
var arr = selector.split('#');
|
var arr = selector.split('#');
|
||||||
for(var i=0;i<arr.length;i++){
|
for(var j=0;j<arr.length;j++){
|
||||||
getId(arr[i]);
|
getId(arr[j]);
|
||||||
}
|
}
|
||||||
status=false;
|
status=false;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -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:1}),['姑表姐','姑表妹','舅表姐','舅表妹','姨表姐','姨表妹']);
|
t.deepEqual(relationship({text:'表姐的妹妹',sex:1}),['姑表姐','姑表妹','舅表姐','舅表妹','姨表姐','姨表妹']);
|
||||||
t.deepEqual(relationship({text:'老公的老婆的儿子的爸爸',sex:0}),['老公']);
|
t.deepEqual(relationship({text:'老公的老婆的儿子的爸爸',sex:0}),['老公']);
|
||||||
|
t.deepEqual(relationship({text:'哥哥的弟弟的爸爸的儿子',sex:1}),['兄弟','自己']);
|
||||||
t.deepEqual(relationship({text:'爸爸的舅舅',sex:0,reverse:true}),['外甥孙女']);
|
t.deepEqual(relationship({text:'爸爸的舅舅',sex:0,reverse:true}),['外甥孙女']);
|
||||||
t.deepEqual(relationship({text:'舅爷爷',type:'chain'}),['爸爸的妈妈的兄弟']);
|
t.deepEqual(relationship({text:'舅爷爷',type:'chain'}),['爸爸的妈妈的兄弟']);
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user