updated 重写选择器合并方法,支持任意复合计算
This commit is contained in:
1 parent
09dd56ca46
commit
128eb45f46
3 files changed
+44
-20
No files matched your search
Vendored
+3
-1
@@ -1 +1,3 @@
|
|||||||
!function(s,f){"object"==typeof module&&module.exports?module.exports=f():s.relationship=f()}("undefined"!=typeof window?window:this,function(){var e=[{exp:/^(.+)&o([^#]+)&l/g,str:"$1$2"},{exp:/^(.+)&l([^#]+)&o/g,str:"$1$2"},{exp:/^(.+)?,o([sb])([^#]+)&l/g,str:"$1,x$2$3"},{exp:/^(.+)?,l([sb])([^#]+)&o/g,str:"$1,x$2$3"},{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"},{exp:/(.+)?\[([^\[\]\|]+?)\|([^\[\]\|]+?)?\](.+)?/g,str:"$1$2$4#$1$3$4"}],m={"":["自己","我","本人","在下"],"[f,f|f,m|m,f|m,m]":["祖辈","祖父母"],"[f|m]":["父母","爹娘","爹妈","爸妈","双亲","二亲","两亲","二老","高堂"],"[h,f|h,m]":["公婆"],"[w,f|w,m]":["岳父母"],"[xb|xs]":["兄弟姐妹","同胞","手足"],"[f,xb,s&o|f,xb,s&l]":["堂兄弟"],"[f,xb,d&o|f,xb,d&l]":["堂姐妹"],"[m,xs,s&o|m,xs,s&l]":["姨兄弟"],"[m,xs,d&o|m,xs,d&l]":["姨姐妹"],"[f,xs,s&o|f,xs,s&l|m,xb,s&o|m,xb,s&l]":["表兄弟"],"[f,xs,d&o|f,xs,d&l|m,xb,d&o|m,xb,d&l]":["表姐妹"],"[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,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,f,f,ob":["伯鼻祖父"],"f,f,f,f,f,f,f,f,f,ob,w":["伯鼻祖母"],"f,f,f,f,f,f,f,f,f,lb":["叔鼻祖父"],"f,f,f,f,f,f,f,f,f,lb,w":["叔鼻祖母"],"f,f,f,f,f,f,f,f,f,xs":["姑鼻祖母"],"f,f,f,f,f,f,f,f,f,xs,h":["姑鼻祖父"],"f,f,f,f,f,f,f,f,m":["鼻祖母"],"f,f,f,f,f,f,f,f,m,xb":["舅鼻祖父"],"f,f,f,f,f,f,f,f,m,xb,w":["舅鼻祖母"],"f,f,f,f,f,f,f,f,m,xs":["姨鼻祖母"],"f,f,f,f,f,f,f,f,m,xs,h":["姨鼻祖父"],"f,f,f,f,f,f,f,f,ob":["伯远祖父"],"f,f,f,f,f,f,f,f,ob,w":["伯远祖母"],"f,f,f,f,f,f,f,f,lb":["叔远祖父"],"f,f,f,f,f,f,f,f,lb,w":["叔远祖母"],"f,f,f,f,f,f,f,f,xs":["姑远祖母"],"f,f,f,f,f,f,f,f,xs,h":["姑远祖父"],"f,f,f,f,f,f,f,m":["远祖母"],"f,f,f,f,f,f,f,m,xb":["舅远祖父"],"f,f,f,f,f,f,f,m,xb,w":["舅远祖母"],"f,f,f,f,f,f,f,m,xs":["姨远祖母"],"f,f,f,f,f,f,f,m,xs,h":["姨远祖父"],"f,f,f,f,f,f,f,ob":["伯太祖父"],"f,f,f,f,f,f,f,ob,w":["伯太祖母"],"f,f,f,f,f,f,f,lb":["叔太祖父"],"f,f,f,f,f,f,f,lb,w":["叔太祖母"],"f,f,f,f,f,f,f,xs":["姑太祖母"],"f,f,f,f,f,f,f,xs,h":["姑太祖父"],"f,f,f,f,f,f,m":["太祖母"],"f,f,f,f,f,f,m,xb":["舅太祖父"],"f,f,f,f,f,f,m,xb,w":["舅太祖母"],"f,f,f,f,f,f,m,xs":["姨太祖母"],"f,f,f,f,f,f,m,xs,h":["姨太祖父"],"f,f,f,f,f,f,ob":["伯烈祖父"],"f,f,f,f,f,f,ob,w":["伯烈祖母"],"f,f,f,f,f,f,lb":["叔烈祖父"],"f,f,f,f,f,f,lb,w":["叔烈祖母"],"f,f,f,f,f,f,xs":["姑烈祖母"],"f,f,f,f,f,f,xs,h":["姑烈祖父"],"f,f,f,f,f,m":["烈祖母"],"f,f,f,f,f,m,xb":["舅烈祖父"],"f,f,f,f,f,m,xb,w":["舅烈祖母"],"f,f,f,f,f,m,xs":["姨烈祖母"],"f,f,f,f,f,m,xs,h":["姨烈祖父"],"f,f,f,f,f,ob":["伯天祖父"],"f,f,f,f,f,ob,w":["伯天祖母"],"f,f,f,f,f,lb":["叔天祖父"],"f,f,f,f,f,lb,w":["叔天祖母"],"f,f,f,f,f,xs":["姑天祖母"],"f,f,f,fLine 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,m={"哥":"兄","姐":"姊","媳妇":"妇","女婿":"婿","媳":"妇","夫":"婿","姪":"侄","姊妹姻":"姻","女姻":"姻","兄弟眷":"眷","男眷":"眷"};f.length;){var b=f.shift(),h=[];for(var w in o){var l=o[w];if(l.indexOf(b)>-1)h.push(w);else{var e=b;for(var r in m)e=e.replace(r,m[r]);var t=l.map(function(s){for(var f in m)s=s.replace(f,m[f]);return s});t.indexOf(e)>-1&&h.push(w)}}h.length||(d=!1);var n=[];x.forEach(function(s){h.forEach(function(f){n.push(s+","+f)})}),x=n}return d?x:[]}function f(s,f){var x=[],d={};f<0&&(s.match(/^,w/)?f=1:s.match(/^,h/)&&(f=0));var m=function(s,f){if(s.indexOf(",1")==-1&&s.indexOf(",0")==-1&&(s=","+f+s),s.match(/,[w0],w|,[h1],h/))return!1;var b="";if(!d[s]){d[s]=!0;var w=!0;do{b=s;for(var o in h){var l=h[o];if(s=s.replace(l.exp,l.str),s.indexOf("#")>-1){for(var e=s.split("#"),r=0;r<e.length;r++)m(e[r]);w=!1;break}}}while(b!=s);if(w){if(s.match(/,[w0],w|,[h1],h/))return!1;s=s.replace(/,[01]/,"").substr(1),x.push(s)}}};return f<0?(m(s,1),m(s,0)):m(s,f),e(x)}function x(s){var f=[],x=function(s){var f=[];for(var x in o)if(x.replace(/&[ol]/g,"")==s)f.push(o[x][0]);else for(var d=s;d.match(/[ol](b|s)/);)if(d=d.replace(/[ol](b|s)/,"x$1"),d==x){f.push(o[x][0]);break}return f};if(o[s])f.push(o[s][0]);else if(f=x(s),f.length||(s=s.replace(/&[ol]/g,""),f=x(s)),f.length||(s=s.replace(/[ol](b|s)/g,"x$1"),f=x(s)),!f.length){var d=s.replace(/x/g,"l");f=x(d);var m=s.replace(/x/g,"o");f=f.concat(x(m))}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.match(/&o$/)?d="&l":s.match(/&l$/)&&(d="&o"),s){s=s.replace(/&[ol]/g,""),f<0&&(s.match(/^w/)?f=1:s.match(/^h/)&&(f=0));var m=[],b=function(f){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(),h=m.split(",").reverse(),w=[],o=0;o<b.length;o++)w.push(x[b[o]][h[o]]);var l=0,e={f:1,m:1,s:-1,d:-1};return w.forEach(function(s){l+=e[s]||0}),w.join(",")+(l?"":d)};return f<0?(m.push(b(1)),m.push(b(0))):m.push(b(f)),m}return[""]}function m(s){var f=s.split(",");return f.map(function(s){var f=s.replace(/&[ol]/,"");return o[f][0]}).join("的")}function b(s,x,m){m<0&&(s.match(/^,w/)||x.match(/^,w/)?m=1:(s.match(/^,h/)||x.match(/^,h/))&&(m=0));var b=m,h=f(s,m),w=f(x,m),o=[];if(x){var l=!1,r=!1;w.forEach(function(s){s.match(/([fhs1](&[ol])?|[olx]b)$/)&&(l=!0),s.match(/([mwd0](&[ol])?|[olx]s)$/)&&(r=!0),o=o.concat(d(s,m))}),o=e(o),l&&r?b=-1:l?b=1:r&&(b=0)}var t=h.length>1?"["+h.join("|")+"]":h[0],n=o.length>1?"["+o.join("|")+"]":o[0];return{selector:(x?","+n:"")+","+t,sex:b}}var h=[{exp:/^(.+)&o([^#]+)&l/g,str:"$1$2"},{exp:/^(.+)&l([^#]+)&o/g,str:"$1$2"},{exp:/^(.+)?,o([sb])([^#]+)&l/g,str:"$1,x$2$3"},{exp:/^(.+)?,l([sb])([^#]+)&o/g,str:"$1,x$2$3"},{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"},{exp:/(.+)?\[([^\[\]\|]+?)\|([^\[\]\|]+?)?\](.+)?/g,str:"$1$2$4#$1$3$4"}],w={"":["自己","我","本人","在下"],"[f,f|f,m|m,f|m,m]":["祖辈","祖父母"],"[f|m]":["父母","爹娘","爹妈","爸妈","双亲","Line truncated
|
||||||
|
"m,m,f,xs,d,s,w":["姑表姨表舅母"],"m,m,f,xs,d,d":["姑表姨表姨母"],"m,m,f,xs,d,d,h":["姑表姨表姨父"],"m,m,m":["外曾外祖母","外太外婆","外太姥姥"],"m,m,m,f":["外曾外曾外祖父","祖太姥爷","祖太公","高王父"],"m,m,m,m":["外曾外曾外祖母","祖太姥姥","祖太姥娘","祖太婆","高王母"],"m,m,m,xb":["舅外曾外祖父","舅太姥爷"],"m,m,m,xb,w":["舅外曾外祖母","舅太姥姥"],"m,m,m,xb,s":["舅表舅外祖父"],"m,m,m,xb,s,w":["舅表舅外祖母"],"m,m,m,xb,s,s":["舅表舅表舅父"],"m,m,m,xb,s,s,w":["舅表舅表舅母"],"m,m,m,xb,s,d":["舅表舅表姨母"],"m,m,m,xb,s,d,h":["舅表舅表姨父"],"m,m,m,xb,d":["舅表姨外祖母"],"m,m,m,xb,d,h":["舅表姨外祖父"],"m,m,m,xb,d,s":["舅表姨表舅父"],"m,m,m,xb,d,s,w":["舅表姨表舅母"],"m,m,m,xb,d,d":["舅表姨表姨母"],"m,m,m,xb,d,d,h":["舅表姨表姨父"],"m,m,m,xs":["姨外曾外祖母","姨太姥姥"],"m,m,m,xs,h":["姨外曾外祖父","姨太姥爷"],"m,m,m,xs,s":["从母舅外祖父"],"m,m,m,xs,s,w":["从母舅外祖母"],"m,m,m,xs,s,s":["从母舅表舅父"],"m,m,m,xs,s,s,w":["从母舅表舅母"],"m,m,m,xs,s,d":["从母舅表姨母"],"m,m,m,xs,s,d,h":["从母舅表姨父"],"m,m,m,xs,d":["从母姨外祖母","从母姨姥姥"],"m,m,m,xs,d,h":["从母姨外祖父","从母姨姥爷"],"m,m,m,xs,d,s":["再从母舅父"],"m,m,m,xs,d,s,w":["再从母舅母"],"m,m,m,xs,d,d":["再从母姨母"],"m,m,m,xs,d,d,h":["再从母姨父"],"m,m,m,xs,d,d,s&o":["三从母兄"],"m,m,m,xs,d,d,s&o,w":["三从母嫂"],"m,m,m,xs,d,d,s&l":["三从母弟"],"m,m,m,xs,d,d,s&l,w":["三从母弟媳"],"m,m,m,xs,d,d,d&o":["三从母姊"],"m,m,m,xs,d,d,d&o,h":["三从母姊夫"],"m,m,m,xs,d,d,d&l":["三从母妹"],"m,m,m,xs,d,d,d&l,h":["三从母妹夫"],"m,m,xb":["外舅公","外舅祖父","外太舅父","舅外祖父","舅姥爷","舅外公","舅公","x舅姥爷"],"m,m,xb,w":["外舅婆","外舅祖母","外太舅母","舅外祖母","舅姥姥","舅婆","外妗婆"],"m,m,xb,s":["舅表舅父","舅表舅爸","表舅父","表舅爸","表舅","表舅舅","舅表舅舅"],"m,m,xb,s,w":["舅表舅母","舅表舅妈","表舅母","表舅妈"],"m,m,xb,s,s&o":["舅表舅表哥"],"m,m,xb,s,s&o,w":["舅表舅表嫂"],"m,m,xb,s,s&l":["舅表舅表弟"],"m,m,xb,s,s&l,w":["舅表舅表弟媳"],"m,m,xb,s,s,s":["舅表舅表侄男"],"m,m,xb,s,s,s,w":["舅表舅表侄妇"],"m,m,xb,s,s,d":["舅表舅表侄女"],"m,m,xb,s,s,d,h":["舅表舅表侄婿"],"m,m,xb,s,d&o":["舅表舅表姐"],"m,m,xb,s,d&o,h":["舅表舅表姐夫"],"m,m,xb,s,d&l":["舅表舅表妹"],"m,m,xb,s,d&l,h":["舅表舅表妹夫"],"m,m,xb,s,d,s":["舅表舅表甥男"],"m,m,xb,s,d,s,w":["舅表舅表甥妇"],"m,m,xb,s,d,d":["舅表舅表甥女"],"m,m,xb,s,d,d,h":["舅表舅表甥婿"],"m,m,xb,d":["舅表姨母","舅表姨妈","表姨母","表姨妈","表姨","表阿姨","舅表姨姨"],"m,m,xb,d,h":["舅表姨父","舅表姨丈","表姨父","表姨丈"],"m,m,xb,d,s&o":["舅表姨表哥"],"m,m,xb,d,s&o,w":["舅表姨表嫂"],"m,m,xb,d,s&l":["舅表姨表弟"],"m,m,xb,d,s&l,w":["舅表姨表弟媳"],"m,m,xb,d,s,s":["舅表姨表侄男"],"m,m,xb,d,s,s,w":["舅表姨表侄妇"],"m,m,xb,d,s,d":["舅表姨表侄女"],"m,m,xb,d,s,d,h":["舅表姨表侄婿"],"m,m,xb,d,d&o":["舅表姨表姐"],"m,m,xb,d,d&o,h":["舅表姨表姐夫"],"m,m,xb,d,d&l":["舅表姨表妹"],"m,m,xb,d,d&l,h":["舅表姨表妹夫"],"m,m,xb,d,d,s":["舅表姨表甥男"],"m,m,xb,d,d,s,w":["舅表姨表甥妇"],"m,m,xb,d,d,d":["舅表姨表甥女"],"m,m,xb,d,d,d,h":["舅表姨表甥婿"],"m,m,xs":["外姨婆","姨外祖母","姨姥姥","外姨祖母","从母姨外祖母"],"m,m,xs,h":["外姨公","姨外祖父","姨姥爷","外姨祖父","从母姨外祖父"],"m,m,xs,s":["姨舅父","姨舅","从母舅父"],"m,m,xs,s,w":["姨舅母","从母舅母"],"m,m,xs,s,s&o":["从母舅表哥"],"m,m,xs,s,s&o,w":["从母舅表嫂"],"m,m,xs,s,s&l":["从母舅表弟"],"m,m,xs,s,s&l,w":["从母舅表弟媳"],"m,m,xs,s,s,s":["从母舅表侄男"],"m,m,xs,s,s,s,w":["从母舅表侄妇"],"m,m,xs,s,s,d":["从母舅表侄女"],"m,m,xs,s,s,d,h":["从母舅表侄婿"],"m,m,xs,s,d&o":["从母舅表姐"],"m,m,xs,s,d&o,h":["从母舅表姐夫"],"m,m,xs,s,d&l":["从母舅表妹"],"m,m,xs,s,d&l,h":["从母舅表妹夫"],"m,m,xs,s,d,s":["从母舅表甥男"],"m,m,xs,s,d,s,w":["从母舅表甥妇"],"m,m,xs,s,d,d":["从母舅表甥女"],"m,m,xs,s,d,d,h":["从母舅表甥婿"],"m,m,xs,d":["姨姨母","姨姨","从母姨母"],"m,m,xs,d,h":["姨姨父","从母姨父","从母姨丈"],"m,m,xs,d,s&o":["再从母兄"],"m,m,xs,d,s&o,w":["再从母嫂"],"m,m,xs,d,s&l":["再从母弟"],"m,m,xs,d,s&l,w":["再从母弟媳"],"m,m,xs,d,s,s":["再从母侄男"],"m,m,xs,d,s,s,w":["再从母侄妇"],"m,m,xs,d,s,d":["再从母侄女"],"m,m,xs,d,s,d,h":["再从母侄婿"],"m,m,xs,d,d&o":["再从母姊"],"m,m,xs,d,d&o,h":["再从母姊夫"],"m,m,xs,d,d&l":["再从母妹"],"m,m,xs,d,d&l,h":["再从母妹夫"],"m,m,xs,d,d,s":["再从母甥男"Line truncated
|
||||||
|
f.forEach(function(s){var f=m(s);f&&$.push(f)})):(r.reverse&&(f=d(s,w.sex)),f.forEach(function(s){var f=x(w.sex+","+s);f.length||(f=x(s)),f.length||0!=s.indexOf("w")&&0!=s.indexOf("h")||(f=x(s.substr(2))),f.length&&($=$.concat(f))}))})})}),e($)};r.dataCount=0;for(var t in o)r.dataCount++;return r.setMode=function(s,f){"undefined"==typeof l[s]&&(l[s]={}),l[s]=Object.assign(l[s],f)},r});
|
||||||
+40
-18
@@ -174,7 +174,7 @@
|
|||||||
str:''
|
str:''
|
||||||
},
|
},
|
||||||
{//并列关系处理1
|
{//并列关系处理1
|
||||||
exp:/(.+)?\[([^\|]+?)\|([^\[\]]+?\|[^\[\]]+?)?\](.+)?/g,
|
exp:/(.+)?\[([^\|]+?)\|([^\[\]]+?\|[^\[\]]+?)\](.+)?/g,
|
||||||
str:'$1$2$4#$1[$3]$4'
|
str:'$1$2$4#$1[$3]$4'
|
||||||
},
|
},
|
||||||
{//并列关系处理2
|
{//并列关系处理2
|
||||||
@@ -2456,23 +2456,45 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 合并选择器,查找两个对象之间的关系
|
// 合并选择器,查找两个对象之间的关系
|
||||||
function mergeSelector(from,to,mid_sex){
|
function mergeSelector(from,to,my_sex){
|
||||||
var sex = mid_sex;
|
if(my_sex<0){
|
||||||
if(to){
|
if(from.match(/^,w/)||to.match(/^,w/)){
|
||||||
sex = to.match(/([fhs1](&[ol])?|[olx]b)$/)?1:0;
|
my_sex = 1;
|
||||||
}
|
}else if(from.match(/^,h/)||to.match(/^,h/)){
|
||||||
var ids = reverseId(to.substr(1),mid_sex);
|
my_sex = 0;
|
||||||
if(ids.length>1){
|
}
|
||||||
return {
|
|
||||||
'selector':(to?',['+ids.join('|')+']':'')+from,
|
|
||||||
'sex':sex
|
|
||||||
};
|
|
||||||
}else{
|
|
||||||
return {
|
|
||||||
'selector':(to?','+ids[0]+'':'')+from,
|
|
||||||
'sex':sex
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
var sex = my_sex;
|
||||||
|
var from_ids = selector2id(from,my_sex);
|
||||||
|
var to_ids = selector2id(to,my_sex);
|
||||||
|
var r_ids = [];
|
||||||
|
if(to){
|
||||||
|
var isMale = false;
|
||||||
|
var isFemale = false;
|
||||||
|
to_ids.forEach(function(id){
|
||||||
|
if(id.match(/([fhs1](&[ol])?|[olx]b)$/)){
|
||||||
|
isMale = true;
|
||||||
|
}
|
||||||
|
if(id.match(/([mwd0](&[ol])?|[olx]s)$/)){
|
||||||
|
isFemale = true;
|
||||||
|
}
|
||||||
|
r_ids = r_ids.concat(reverseId(id,my_sex));
|
||||||
|
});
|
||||||
|
r_ids = unique(r_ids);
|
||||||
|
if(isMale&&isFemale){
|
||||||
|
sex = -1;
|
||||||
|
}else if(isMale){
|
||||||
|
sex = 1;
|
||||||
|
}else if(isFemale){
|
||||||
|
sex = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var from_selector = from_ids.length>1?'['+from_ids.join('|')+']':from_ids[0];
|
||||||
|
var to_selector = r_ids.length>1?'['+r_ids.join('|')+']':r_ids[0];
|
||||||
|
return {
|
||||||
|
'selector':(to?','+to_selector:'')+','+from_selector,
|
||||||
|
'sex':sex
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
var relationship = function (parameter){
|
var relationship = function (parameter){
|
||||||
@@ -2501,7 +2523,7 @@
|
|||||||
var data = mergeSelector(from,to,options.sex);
|
var data = mergeSelector(from,to,options.sex);
|
||||||
// console.log('[data]',data);
|
// console.log('[data]',data);
|
||||||
var ids = selector2id(data['selector'],data['sex']);
|
var ids = selector2id(data['selector'],data['sex']);
|
||||||
// console.log('[ids]',data['selector'],sex,ids);
|
// console.log('[ids]',data['selector'],data['sex'],ids);
|
||||||
if(ids){
|
if(ids){
|
||||||
ids.forEach(function(id){
|
ids.forEach(function(id){
|
||||||
var temps = [id];
|
var temps = [id];
|
||||||
|
|||||||
+1
-1
@@ -21,6 +21,6 @@ test('relationship.js show to be tested', function (t) {
|
|||||||
t.deepEqual(relationship({text:'岳母',target:'女儿',reverse:true}),['外孙女']);
|
t.deepEqual(relationship({text:'岳母',target:'女儿',reverse:true}),['外孙女']);
|
||||||
t.deepEqual(relationship({text:'姑妈',target:'舅妈',reverse:true}),['兄弟眷兄妇','兄弟眷弟妇']);
|
t.deepEqual(relationship({text:'姑妈',target:'舅妈',reverse:true}),['兄弟眷兄妇','兄弟眷弟妇']);
|
||||||
t.deepEqual(relationship({text:'舅妈',target:'女儿',reverse:true}),['姑甥孙女','姑甥外孙女']);
|
t.deepEqual(relationship({text:'舅妈',target:'女儿',reverse:true}),['姑甥孙女','姑甥外孙女']);
|
||||||
|
t.deepEqual(relationship({text:'老公的父母',target:'孩子'}),['爷爷','奶奶']);
|
||||||
t.end();
|
t.end();
|
||||||
});
|
});
|
||||||
Reference in new issue
Block a user