updated 一个关系链bug修复

This commit is contained in:
PASSER-BY committed 2021-11-26 07:35:09 +08:00
1 parent 128eb45f46
commit 6bc22e041a
4 files changed
+27 -15

No files matched your search

+2 -2
View File
@@ -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(),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
!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)}else o=[""];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":["姑表姨表舅父"],"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":["再从母妹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});
+15 -8
View File
@@ -137,14 +137,21 @@ relationship.setMode('cantonese',{
};
var bindChange = function(){
var value = $input.value.trim();
var result = relationship({text:value,type:'chain'});
if(result.length){
var name = result[0].split('的').pop();
if(!name){
toggleSex($sex[0].checked);
}else{
toggleSex('爸爸,老公,儿子,哥哥,弟弟,兄弟'.indexOf(name)>-1);
}
var sex = $sex[0].checked?1:0;
var mode = $mode[0].checked?$mode[0].value:$mode[1].value;
var reverse = !$reverse[0].checked;
if(value){
var result = relationship({text:value,sex:sex,reverse:reverse,mode:mode});
if(result.length){
var name = result[0].split('的').pop();
if(!name){
toggleSex($sex[0].checked);
}else{
toggleSex('爸爸,老公,儿子,哥哥,弟弟,兄弟'.indexOf(name)>-1);
}
}
}else{
$result.value = '';
}
};
+8 -5
View File
@@ -173,11 +173,11 @@
exp:/,w,h|,h,w/g,
str:''
},
{//并列关系处理1
exp:/(.+)?\[([^\|]+?)\|([^\[\]]+?\|[^\[\]]+?)\](.+)?/g,
{//并列关系处理1 X[A|B|C]Y = XAY#X[B|C]Y
exp:/(.+)?\[([^\|]+?)\|([^\[\]]*\|[^\[\]]*)\](.+)?/g,
str:'$1$2$4#$1[$3]$4'
},
{//并列关系处理2
{//并列关系处理2 X[A|B]Y = XAY#XBY
exp:/(.+)?\[([^\[\]\|]+?)\|([^\[\]\|]+?)?\](.+)?/g,
str:'$1$2$4#$1$3$4'
}
@@ -2488,7 +2488,10 @@
}else if(isFemale){
sex = 0;
}
}else{
r_ids = [''];
}
// console.log('[from_ids]',from_ids,'r_ids',r_ids);
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 {
@@ -2513,7 +2516,7 @@
_data[key] = [].concat(_mode[lang][key],_map[key]||[]);
}
}
}
}
var from_selectors = getSelectors(options.text);
var to_selectors = options.target?getSelectors(options.target):[''];
// console.log('[selectors]',from_selectors,to_selectors);
@@ -2526,7 +2529,7 @@
// console.log('[ids]',data['selector'],data['sex'],ids);
if(ids){
ids.forEach(function(id){
var temps = [id];
var temps = [id];
if(options.type=='chain'){
if(options.reverse){
temps = reverseId(id,data['sex']);
+2
View File
@@ -22,5 +22,7 @@ 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:'孩子'}),['爷爷','奶奶']);
t.deepEqual(relationship({text:'爸爸的哥哥的弟弟的儿子'}),['堂哥','堂弟','兄弟','自己']);
t.end();
});