updated 添加从表关系及玄孙辈关系
This commit is contained in:
1 parent
913df1baff
commit
e4cbcd4bd4
4 files changed
+1031
-566
No files matched your search
Vendored
+513
-281
File diff suppressed because it is too large.
Load diff
Vendored
+2
-1
@@ -1 +1,2 @@
|
||||
!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.replace(/我的?/,"").replace(/家的?/,"的").split("的"),x=[],m=!0;f.length;){var d=f.shift(),b=[],h=!1;for(var l in w){var o=w[l];o.indexOf(d)>-1&&(!l&&f.length||b.push(l),h=!0)}if(h||(m=!1),x.length){for(var e=[],l=0;l<x.length;l++)for(var r=0;r<b.length;r++)e.push(x[l]+","+b[r]);x=e}else for(var l=0;l<b.length;l++)x.push(","+b[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 d=function(s){var f="";if(!m[s]){m[s]=!0;var w=!0;do{f=s;for(var h in b){var l=b[h];if(s=s.replace(l.exp,l.str),s.indexOf("#")>-1){for(var o=s.split("#"),e=0;e<o.length;e++)d(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 d(s),h(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 d=s.replace(/x/g,"l");f=m(d);var b=s.replace(/x/g,"o");f=f.concat(m(b))}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 d=(","+f+","+s).replace(/,[fhs]|,[olx]b/g,",1").replace(/,[mwd]|,[olx]s/g,",0");d=d.substring(0,d.lastIndexOf(","));for(var b=s.split(",").reverse(),w=d.split(",").reverse(),h=[],l=0;l<b.length;l++)h.push(x[b[l]][w[l]]);return h.join(",")+m}return""}function d(s){for(var f=s.split(","),x=[],m=0;m<f.length;m++){var d=f[m].replace(/&[ol]/,"");x.push(w[d][0])}return x.join("的")}var b=[{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={"":["自己","我","本人"],"[f|m]":["父母","爹娘","爹妈","爸妈","双亲","二老","高堂"],"[h,f|h,m]":["公婆"],"[xb|xs]":["兄弟姐妹"],"[s|d]":["子女","儿女","小孩","孩子"],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,m,xb":["舅高祖父"],"f,f,f,m,xb,w":["舅高祖母"],"f,f,f,ob":["曾伯祖父","曾伯父","伯曾祖父","伯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.replace(/我的?/,"").replace(/家的?/,"的").split("的"),x=[],d=!0;f.length;){var m=f.shift(),b=[],h=!1;for(var l in w){var o=w[l];o.indexOf(m)>-1&&(!l&&f.length||b.push(l),h=!0)}if(h||(d=!1),x.length){for(var e=[],l=0;l<x.length;l++)for(var r=0;r<b.length;r++)e.push(x[l]+","+b[r]);x=e}else for(var l=0;l<b.length;l++)x.push(","+b[l])}return d?x:[]}function f(s,f){var x=[],d={};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 m=function(s){var f="";if(!d[s]){d[s]=!0;var w=!0;do{f=s;for(var h in b){var l=b[h];if(s=s.replace(l.exp,l.str),s.indexOf("#")>-1){for(var o=s.split("#"),e=0;e<o.length;e++)m(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 m(s),h(x)}function x(s){var f=[],x=/&[olx]/g,d=function(s){var f=[];for(var d in w)d.replace(x,"")==s&&f.push(w[d][0]);return f};if(w[s])f.push(w[s][0]);else if(f=d(s),f.length||(s=s.replace(/&[ol]/g,""),f=d(s)),f.length||(s=s.replace(/[ol]/g,"x"),f=d(s)),!f.length){var m=s.replace(/x/g,"l");f=d(m);var b=s.replace(/x/g,"o");f=f.concat(d(b))}return f}function d(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"]},d="";if(s.indexOf("&o")>-1?d="&l":s.indexOf("&l")>-1&&(d="&o"),s){s=s.replace(/&[ol]/g,""),f=f?1:0;var m=(","+f+","+s).replace(/,[fhs]|,[olx]b/g,",1").replace(/,[mwd]|,[olx]s/g,",0");m=m.substring(0,m.lastIndexOf(","));for(var b=s.split(",").reverse(),w=m.split(",").reverse(),h=[],l=0;l<b.length;l++)h.push(x[b[l]][w[l]]);return h.join(",")+d}return""}function m(s){for(var f=s.split(","),x=[],d=0;d<f.length;d++){var m=f[d].replace(/&[ol]/,"");x.push(w[m][0])}return x.join("的")}var b=[{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={"":["自己","我","本人"],"[f,f|f,m|m,f|m,m]":["祖父母"],"[f|m]":["父母","爹娘","爹妈","爸妈","双亲","二老","高堂"],"[h,f|h,m]":["公婆"],"[xb|xs]":["兄弟姐妹"],"[s|d]":["子女","儿女","小孩","孩子"],"[s,s|s,d|d,s|d,d]":["孙辈"],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,m,xb":["舅高祖Line truncated
|
||||
if("chain"==w.type){var $=m(n);$&&e.push($)}else{w.reverse&&(n=d(n,w.sex));var a=x(n);a.length?e=e.concat(a):0!=n.indexOf("w")&&0!=n.indexOf("h")||(a=x(n.substr(2)),a.length&&(e=e.concat(a)))}}return h(e)}});
|
||||
+513
-281
File diff suppressed because it is too large.
Load diff
+3
-3
@@ -10,11 +10,11 @@ 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:1}),['姑表姐','姑表妹','舅表姐','舅表妹','姨表姐','姨表妹']);
|
||||
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:'爸爸的舅舅',sex:0,reverse:true}),['甥孙女']);
|
||||
t.deepEqual(relationship({text:'舅爷爷',type:'chain'}),['爸爸的妈妈的兄弟']);
|
||||
|
||||
t.end();
|
||||
|
||||
Reference in new issue
Block a user