updated bug修复及精简部分代码
This commit is contained in:
1 parent
063f4f231f
commit
a5f06ac144
2 files changed
+72
-91
No files matched your search
Vendored
+3
-3
@@ -1,3 +1,3 @@
|
|||||||
!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(),w=[];for(var h in o){var l=o[h];if(l.indexOf(b)>-1)w.push(h);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&&w.push(h)}}w.length||(d=!1);var n=[];x.forEach(function(s){w.forEach(function(f){n.push(s+","+f)})}),x=n}return d?x:[]}function f(s,f){var x=[],d={};if(f<0?0==s.indexOf(",w")?s=",1"+s:0==s.indexOf(",h")&&(s=",0"+s):0==s.indexOf(",1")||0==s.indexOf(",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 b=!0;do{f=s;for(var h in w){var o=w[h];if(s=s.replace(o.exp,o.str),s.indexOf("#")>-1){for(var l=s.split("#"),e=0;e<l.length;e++)m(l[e]);b=!1;break}}}while(f!=s);if(b){if(s.match(/,[w0],w|,[h1],h/))return!1;s=s.replace(/,[01]/,"").substr(1),x.push(s)}}};return m(s),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=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=[],o=0;o<b.length;o++)h.push(x[b[o]][w[o]]);var l=0;return h.forEach(function(s){["f","m"].indexOf(s)>-1?l++:["s","d"].indexOf(s)>-1&&l--}),h.join(",")+(l?"":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(o[m][0])}return x.join("的")}function b(s,f){for(var x=s.split(","),m=f.split(","),b=0;b<x.length&&b<m.length&&x[b]==m[b];b++);var w=-1;m[b-1]&&(w=m[b-1].match(/([fhs1](&[ol])?|[olx]b)$/)?1:0);var h=-1;if(f&&(h=f.match(/,([fhs1](&[ol])?|[olx]b)$/)?1:0),b){var o=x.slice(b).join(","),l=m.slice(b).join(",");return{selector:(l?","+d(l,w):"")+(o?","+o:""),sex:h}}return{selector:s,sex:h}}var w=[{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"}],h={"":["自己","我","本人","在下"],"[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]":["堂兄弟"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,m={"哥":"兄","姐":"姊","媳妇":"妇","女婿":"婿","媳":"妇","夫":"婿","姪":"侄","姊妹姻":"姻","女姻":"姻","兄弟眷":"眷","男眷":"眷"};f.length;){var b=f.shift(),w=[];for(var h in o){var l=o[h];if(l.indexOf(b)>-1)w.push(h);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&&w.push(h)}}w.length||(d=!1);var n=[];x.forEach(function(s){w.forEach(function(f){n.push(s+","+f)})}),x=n}return d?x:[]}function f(s,f){var x=[],d={};if(f<0&&(f=s.match(/^,w/)?1:0),f=f?1:0,s.indexOf(",1")==-1&&s.indexOf(",0")==-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 b=!0;do{f=s;for(var h in w){var o=w[h];if(s=s.replace(o.exp,o.str),s.indexOf("#")>-1){for(var l=s.split("#"),e=0;e<l.length;e++)m(l[e]);b=!1;break}}}while(f!=s);if(b){if(s.match(/,[w0],w|,[h1],h/))return!1;s=s.replace(/,[01]/,"").substr(1),x.push(s)}}};return m(s),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&&(f=s.match(/^w/)?1:0),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=[],o=0;o<b.length;o++)h.push(x[b[o]][w[o]]);var l=0,e={f:1,m:1,s:-1,d:-1};return h.forEach(function(s){l+=e[s]||0}),h.join(",")+(l?"":d)}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,f){for(var x=s.split(","),m=f.split(","),b=-1,w=-1,h=/([fhs1](&[ol])?|[olx]b)/,o=0;o<x.length&&o<m.length&&x[o]==m[o];o++);m[o-1]&&(b=m[o-1].match(h)?1:0),m[m.length-1]&&(w=m[m.length-1].match(h)?1:0);var l=x.slice(o).join(","),e=m.slice(o).join(",");return{selector:(e?","+d(e,b):"")+(l?","+l:""),sex:w}}var w=[{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"}],h={"":["自己","我","本人","在下"],"[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,Line truncated
|
||||||
"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":["再从母甥男"],"m,m,xs,d,d,s,w":["再从母甥妇"],"m,m,xs,d,d,d":["再从母甥女"],"m,m,xs,d,d,d,h":["再从母甥婿"],"m,xb":["舅舅","舅父","舅","娘舅","舅仔","母舅","舅爸","舅爹","阿舅","x舅"],"m,xb,w":["舅妈","舅母","妗子","妗妗","妗妈","妗母","阿妗","x舅妈"],"m,xb,w,f":["舅眷外祖父","舅眷王父","舅眷毑父","舅眷姥爷","眷姥爷"],"m,xb,w,m":["Line truncated
|
"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":["再从母甥男"],"m,m,xs,d,d,s,w":["再从母甥妇"],"m,m,xs,d,d,d":["再从母甥女"],"m,m,xs,d,d,d,h":["再从母甥婿"],"m,xb":["舅舅","舅父","舅","娘舅","舅仔","母舅","舅爸","舅爹","阿舅","x舅"],"m,xb,w":["舅妈","舅母","妗子","妗妗","妗妈","妗母","阿妗","x舅妈"],"m,xb,w,f":["舅眷外祖父","舅眷王父","舅眷毑父","舅眷姥爷","眷姥爷"],"m,xb,w,m":["舅眷外祖女","舅眷王母","舅眷毑母","舅Line truncated
|
||||||
}}})}),e(i)};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});
|
"undefined"==typeof l[s]&&(l[s]={}),l[s]=Object.assign(l[s],f)},r});
|
||||||
+69
-88
@@ -197,6 +197,8 @@
|
|||||||
'[xb|xs]':['兄弟姐妹','同胞','手足'],
|
'[xb|xs]':['兄弟姐妹','同胞','手足'],
|
||||||
'[f,xb,s&o|f,xb,s&l]':['堂兄弟'],
|
'[f,xb,s&o|f,xb,s&l]':['堂兄弟'],
|
||||||
'[f,xb,d&o|f,xb,d&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,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]':['表姐妹'],
|
'[f,xs,d&o|f,xs,d&l|m,xb,d&o|m,xb,d&l]':['表姐妹'],
|
||||||
'[s|d]':['子女','儿女','小孩','孩子','孩儿','宝宝','娃'],
|
'[s|d]':['子女','儿女','小孩','孩子','孩儿','宝宝','娃'],
|
||||||
@@ -2284,16 +2286,14 @@
|
|||||||
function selector2id(selector,sex){
|
function selector2id(selector,sex){
|
||||||
var result = [];
|
var result = [];
|
||||||
var hash = {};
|
var hash = {};
|
||||||
if(sex<0){
|
//性别判断
|
||||||
if(selector.indexOf(',w')==0){
|
if(sex<0){
|
||||||
selector = ',1'+selector;
|
sex = selector.match(/^,w/)?1:0;
|
||||||
}else if(selector.indexOf(',h')==0){
|
}
|
||||||
selector = ',0'+selector;
|
sex = sex?1:0;
|
||||||
}
|
if(selector.indexOf(',1')==-1&&selector.indexOf(',0')==-1){
|
||||||
}else if(selector.indexOf(',1')==0||selector.indexOf(',0')==0){
|
|
||||||
}else if(sex>-1){
|
|
||||||
selector = ','+sex+selector;
|
selector = ','+sex+selector;
|
||||||
}
|
}
|
||||||
// console.log('[selector]',selector);
|
// console.log('[selector]',selector);
|
||||||
if(selector.match(/,[w0],w|,[h1],h/)){ //同志关系去除
|
if(selector.match(/,[w0],w|,[h1],h/)){ //同志关系去除
|
||||||
return false;
|
return false;
|
||||||
@@ -2402,7 +2402,11 @@
|
|||||||
}
|
}
|
||||||
if(id){
|
if(id){
|
||||||
id = id.replace(/&[ol]/g,'');
|
id = id.replace(/&[ol]/g,'');
|
||||||
sex = sex?1:0; //逆转运算自身性别必须确定
|
//性别判断
|
||||||
|
if(sex<0){
|
||||||
|
sex = id.match(/^w/)?1:0;
|
||||||
|
}
|
||||||
|
sex = sex?1:0;
|
||||||
var sid = (','+sex+','+id).replace(/,[fhs]|,[olx]b/g,',1').replace(/,[mwd]|,[olx]s/g,',0');
|
var sid = (','+sex+','+id).replace(/,[fhs]|,[olx]b/g,',1').replace(/,[mwd]|,[olx]s/g,',0');
|
||||||
sid = sid.substring(0,sid.lastIndexOf(','));
|
sid = sid.substring(0,sid.lastIndexOf(','));
|
||||||
var id_arr = id.split(',').reverse();
|
var id_arr = id.split(',').reverse();
|
||||||
@@ -2412,12 +2416,9 @@
|
|||||||
arr.push(hash[id_arr[i]][sid_arr[i]]);
|
arr.push(hash[id_arr[i]][sid_arr[i]]);
|
||||||
}
|
}
|
||||||
var g = 0;
|
var g = 0;
|
||||||
|
var gMap = {'f':1,'m':1,'s':-1,'d':-1};
|
||||||
arr.forEach(function(r){
|
arr.forEach(function(r){
|
||||||
if(['f','m'].indexOf(r)>-1){
|
g += gMap[r]||0;
|
||||||
g++;
|
|
||||||
}else if(['s','d'].indexOf(r)>-1){
|
|
||||||
g--;
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
return arr.join(',')+(g?'':age);
|
return arr.join(',')+(g?'':age);
|
||||||
}
|
}
|
||||||
@@ -2427,12 +2428,10 @@
|
|||||||
// 通过ID获取关系链条
|
// 通过ID获取关系链条
|
||||||
function getChainById(id){
|
function getChainById(id){
|
||||||
var arr = id.split(',');
|
var arr = id.split(',');
|
||||||
var items = [];
|
return arr.map(function(sign){
|
||||||
for(var i = 0;i<arr.length;i++){
|
var key = sign.replace(/&[ol]/,'');
|
||||||
var key = arr[i].replace(/&[ol]/,'');
|
return _data[key][0];
|
||||||
items.push(_data[key][0]);
|
}).join('的');
|
||||||
}
|
|
||||||
return items.join('的');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 合并选择器,查找两个对象之间的关系
|
// 合并选择器,查找两个对象之间的关系
|
||||||
@@ -2440,40 +2439,26 @@
|
|||||||
var Index = 0;
|
var Index = 0;
|
||||||
var from_arr = from.split(',');
|
var from_arr = from.split(',');
|
||||||
var to_arr = to.split(',');
|
var to_arr = to.split(',');
|
||||||
|
var mid_sex = -1;
|
||||||
|
var sex = -1;
|
||||||
|
var reg_sex = /([fhs1](&[ol])?|[olx]b)/;
|
||||||
for(var i=0;i<from_arr.length&&i<to_arr.length;i++){
|
for(var i=0;i<from_arr.length&&i<to_arr.length;i++){
|
||||||
if(from_arr[i]!=to_arr[i]){
|
if(from_arr[i]!=to_arr[i]){
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var mid_sex = -1;
|
if(to_arr[i-1]){
|
||||||
if(to_arr[i-1]){
|
mid_sex = to_arr[i-1].match(reg_sex)?1:0;
|
||||||
if(to_arr[i-1].match(/([fhs1](&[ol])?|[olx]b)$/)){
|
}
|
||||||
mid_sex=1;
|
if(to_arr[to_arr.length-1]){
|
||||||
}else{
|
sex = to_arr[to_arr.length-1].match(reg_sex)?1:0;
|
||||||
mid_sex=0;
|
}
|
||||||
}
|
var from_sub = from_arr.slice(i).join(',');
|
||||||
}
|
var to_sub = to_arr.slice(i).join(',');
|
||||||
var sex = -1;
|
return {
|
||||||
if(to){
|
'selector':(to_sub?','+reverseId(to_sub,mid_sex):'')+(from_sub?','+from_sub:''),
|
||||||
if(to.match(/,([fhs1](&[ol])?|[olx]b)$/)){
|
'sex':sex
|
||||||
sex=1;
|
};
|
||||||
}else{
|
|
||||||
sex=0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(i){
|
|
||||||
var from_sub = from_arr.slice(i).join(',');
|
|
||||||
var to_sub = to_arr.slice(i).join(',');
|
|
||||||
return {
|
|
||||||
'selector':(to_sub?','+reverseId(to_sub,mid_sex):'')+(from_sub?','+from_sub:''),
|
|
||||||
'sex':sex
|
|
||||||
};
|
|
||||||
}else{
|
|
||||||
return {
|
|
||||||
'selector':from,
|
|
||||||
'sex':sex
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var relationship = function (parameter){
|
var relationship = function (parameter){
|
||||||
@@ -2483,19 +2468,14 @@
|
|||||||
sex:-1,
|
sex:-1,
|
||||||
type:'default', // 'chain'表示关系链
|
type:'default', // 'chain'表示关系链
|
||||||
reverse:false, // true表示反向
|
reverse:false, // true表示反向
|
||||||
mode:'default', // 'cantonese'表示粤语地区
|
mode:'default', // 用户自定义模式
|
||||||
},parameter);
|
},parameter);
|
||||||
var sex = options.sex;
|
var sex = options.sex;
|
||||||
|
_data = Object.assign({},_map);
|
||||||
for(var lang in _mode){
|
for(var lang in _mode){
|
||||||
if(options.mode==lang){
|
if(options.mode==lang){
|
||||||
for(var key in _mode[lang]){
|
for(var key in _mode[lang]){
|
||||||
_data[key] = _mode[lang][key].concat(_map[key]||[]);
|
_data[key] = [].concat(_mode[lang][key],_map[key]||[]);
|
||||||
}
|
|
||||||
}else{
|
|
||||||
for(var key in _mode[lang]){
|
|
||||||
if(_map[key]){
|
|
||||||
_data[key] = _map[key].concat(_mode[lang][key]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2506,38 +2486,39 @@
|
|||||||
from_selectors.forEach(function(from){
|
from_selectors.forEach(function(from){
|
||||||
to_selectors.forEach(function(to){
|
to_selectors.forEach(function(to){
|
||||||
var data = mergeSelector(from,to);
|
var data = mergeSelector(from,to);
|
||||||
// console.log('[data]',data);
|
// console.log('[data]',data);
|
||||||
sex = data['sex']>-1?data['sex']:options.sex;
|
sex = data['sex']>-1?data['sex']:options.sex;
|
||||||
var ids = selector2id(data['selector'],sex);
|
var ids = selector2id(data['selector'],sex);
|
||||||
// console.log('[ids]',ids);
|
// console.log('[ids]',data['selector'],sex,ids);
|
||||||
for(var j=0;j<ids.length;j++){
|
if(ids){
|
||||||
var id = ids[j];
|
ids.forEach(function(id){
|
||||||
if(options.type=='chain'){
|
if(options.type=='chain'){
|
||||||
if(options.reverse){
|
if(options.reverse){
|
||||||
id = reverseId(id,sex);
|
id = reverseId(id,sex);
|
||||||
}
|
}
|
||||||
var item = getChainById(id);
|
var item = getChainById(id);
|
||||||
if(item){
|
if(item){
|
||||||
result.push(item);
|
result.push(item);
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
if(options.reverse){
|
if(options.reverse){
|
||||||
id = reverseId(id,sex);
|
id = reverseId(id,sex);
|
||||||
}
|
}
|
||||||
var items = getDataById(sex+','+id);
|
var items = getDataById(sex+','+id);
|
||||||
if(!items.length){
|
if(!items.length){
|
||||||
items = getDataById(id);
|
items = getDataById(id);
|
||||||
}
|
}
|
||||||
if(!items.length){
|
if(!items.length){
|
||||||
if(id.indexOf('w')==0||id.indexOf('h')==0){ //找不到关系,随爱人叫
|
if(id.indexOf('w')==0||id.indexOf('h')==0){ //找不到关系,随爱人叫
|
||||||
items = getDataById(id.substr(2));
|
items = getDataById(id.substr(2));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(items.length){
|
if(items.length){
|
||||||
result = result.concat(items);
|
result = result.concat(items);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
return unique(result);
|
return unique(result);
|
||||||
|
|||||||
Reference in new issue
Block a user