updated 叫不出称呼的可以随爱人叫

This commit is contained in:
mumuy committed 2016-09-28 22:02:31 +08:00
1 parent 84dc001ced
commit b8c8f0cc80
3 files changed
+87 -69

No files matched your search

+43 -34
View File
@@ -167,6 +167,7 @@
}
];
//关系数据
var _data = {
'':['自己','我'],
//本家
@@ -864,14 +865,37 @@
//获取数据
function getDataById(id){
var result = [];
var filter = /&[olx]/g; //忽略属性查找数据
for(var i in _data){
if(i.replace(filter,'')==id){
result.push(_data[i]);
var items = [];
var filter = /&[olx]/g; //忽略属性
var getData = function(d){
var res = [];
for(var i in _data){
if(i.replace(filter,'')==d){
res.push(_data[i][0]);
}
}
return res;
};
if(_data[id]){ //直接匹配称呼
items.push(_data[id][0]);
}else{
items = getData(id);
if(!items.length){ //忽略年龄条件查找
id = id.replace(/&[ol]/g,'');
items = getData(id);
}
if(!items.length){ //忽略年龄条件查找
id = id.replace(/[ol]/g,'x');
result = getData(id);
}
if(!items.length){ //缩小访问查找
var l = id.replace(/x/g,'l');
items = getData(l);
var o = id.replace(/x/g,'o');
items = result.concat(getData(o));
}
}
return result;
return items;
}
//逆转ID
@@ -912,7 +936,7 @@
return '';
}
//简化选择器
//获取关系链条
function getChainById(id){
var arr = id.split(',');
var items = [];
@@ -923,7 +947,7 @@
return items.join('的');
}
function relationship(parameter){
return (function (parameter){
var options = {
text:'',
sex:-1,
@@ -942,41 +966,26 @@
for(var j=0;j<ids.length;j++){
var id = ids[j];
if(options.type=='chain'){
var data = getChainById(id);
if(data){
result.push(data);
var item = getChainById(id);
if(item){
result.push(item);
}
}else{
if(options.reverse){
id = reverseId(id,options.sex);
}
if(_data[id]){ //直接匹配称呼
result.push(_data[id][0]);
}else{ //高级查找
var data = getDataById(id); //忽略属性查找
if(!data.length){ //当无精确数据时,忽略年龄条件查找
id = id.replace(/&[ol]/g,'');
data = getDataById(id);
}
if(!data.length){
id = id.replace(/[ol]/g,'x');
data = getDataById(id);
}
if(!data.length){
var l = id.replace(/x/g,'l');
data = getDataById(l);
var o = id.replace(/x/g,'o');
data = data.concat(getDataById(o));
}
for(var d=0;d<data.length;d++){
result.push(data[d][0]);
var items = getDataById(id);
if(items.length){
result = result.concat(items);
}else if(id.indexOf('w')==0||id.indexOf('h')==0){ //找不到关系,随爱人叫
items = getDataById(id.substr(2));
if(items.length){
result = result.concat(items);
}
}
}
}
}
return unique(result);
}
return relationship;
});
});
+1 -1
View File
@@ -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=[],w=!1;for(var l in h){var o=h[l];o.indexOf(b)>-1&&(!l&&f.length||d.push(l),w=!0)}if(w||(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={};f<0&&(0==s.indexOf(",w")?f=1:0==s.indexOf(",h")&&(f=0)),f>-1&&(s=","+f+s);var b=function(s){var f="";if(!m[s]){m[s]=!0;var d=!0;do{f=s;for(var h in w){var l=w[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]);d=!1;break}}}while(f!=s);d&&(s=s.replace(/,[01]/,"").substr(1),x.push(s))}};return b(s),x}function x(s){var f=[],x=/&[olx]/g;for(var m in h)m.replace(x,"")==s&&f.push(h[m]);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(h[b][0])}return x.join("的")}function d(d){var w={text:"",sex:-1,type:"default",reverse:!1};for(var o in d)w[o]=d[o];for(var e=s(w.text),r=[],t=0;t<e.length;t++)for(var p=f(e[t],w.sex),$=0;$<p.length;$++){var n=p[$];if("chain"==w.type){var a=b(n);a&&r.push(a)}else if(w.reverse&&(n=m(n,w.sex)),h[n])r.push(h[n][0]);else{var a=x(n);if(a.length||(n=n.replace(/&[ol]/g,""),a=x(n)),a.length||(n=n.replace(/[ol]/g,"x"),a=x(n)),!a.length){var g=n.replace(/x/g,"l");a=x(g);var i=n.replace(/x/g,"o");a=a.concat(x(i))}for(var u=0;u<a.length;u++)r.push(a[u][0])}}return l(r)}var w=[{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:""}],h={"":["自己","我"],f:["爸爸","父亲","阿爸","老爸","老窦","爹","爹爹","爹地","爹啲","老爹","大大","老爷子"],"f,f":["爷爷","祖父","阿爷","奶爷"],"f,f,f":["曾祖父","太爷","太爷爷","太公","祖公","祖奶爷"],"f,f,f,f":["高祖父","老太爷","祖太爷"],"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":["叔曾祖母","曾叔祖母","叔婆太","叔太太"],"f,f,f,xb,s&o":["堂伯祖父"],"f,f,f,xb,s&o,w":["堂伯祖母"],"f,f,f,xb,s&l":["堂叔祖父"],"f,f,f,xb,s&l,w":["堂叔祖母"],"f,f,f,xb,s,s&o":["从伯父"],"f,f,f,xb,s,s&o,w":["从伯母"],"f,f,f,xb,s,s&l":["从叔父"],"f,f,f,xb,s,s&l,w":["从叔母"],"f,f,f,xb,s,s,s&o":["族兄"],"f,f,f,xb,s,s,s&l":["族弟"],"f,f,f,xb,d":["堂姑祖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={};f<0&&(0==s.indexOf(",w")?f=1:0==s.indexOf(",h")&&(f=0)),f>-1&&(s=","+f+s);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);w&&(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"),result=m(s)),!f.length){var b=s.replace(/x/g,"l");f=m(b);var d=s.replace(/x/g,"o");f=result.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:""}],w={"":["自己","我"],f:["爸爸","父亲","阿爸","老爸","老窦","爹","爹爹","爹地","爹啲","老爹","大大","老爷子"],"f,f":["爷爷","祖父","阿爷","奶爷"],"f,f,f":["曾祖父","太爷","太爷爷","太公","祖公","祖奶爷"],"f,f,f,f":["高祖父","老太爷","祖太爷"],"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":["叔曾祖母","曾叔祖母","叔婆太","叔太太"],"f,f,f,xb,s&o":["堂伯祖父"],"f,f,f,xb,s&o,w":["堂伯祖母"],"f,f,f,xb,s&l":["堂叔祖父"],"f,f,f,xb,s&l,w":["堂叔祖母"],"f,f,f,xb,s,s&o":["从伯父"],"f,f,f,xb,s,s&o,w":["从伯母"],"f,f,f,xb,s,s&l":["从叔父"],"f,f,f,xb,s,s&l,w":["从叔母"],"f,f,f,xb,s,s,s&o":["族兄"],"f,f,f,xb,s,s,s&l":["族弟"],"f,f,f,xb,d":["堂姑祖母"],"f,f,f,xb,d,h":["堂姑祖父"],"f,f,f,xs":["姑曾祖母","曾祖姑母","太姑婆","姑婆太","姑太太"],"f,f,f,xs,h":["姑曾祖父","曾祖姑丈","太姑丈公","姑丈公太","姑太爷"],"f,f,f,xs,s&o":["表伯祖父"],"f,f,f,xs,s&o,w":["表伯祖母"],"f,f,f,Line truncated
+43 -34
View File
@@ -167,6 +167,7 @@
}
];
//关系数据
var _data = {
'':['自己','我'],
//本家
@@ -864,14 +865,37 @@
//获取数据
function getDataById(id){
var result = [];
var filter = /&[olx]/g; //忽略属性查找数据
for(var i in _data){
if(i.replace(filter,'')==id){
result.push(_data[i]);
var items = [];
var filter = /&[olx]/g; //忽略属性
var getData = function(d){
var res = [];
for(var i in _data){
if(i.replace(filter,'')==d){
res.push(_data[i][0]);
}
}
return res;
};
if(_data[id]){ //直接匹配称呼
items.push(_data[id][0]);
}else{
items = getData(id);
if(!items.length){ //忽略年龄条件查找
id = id.replace(/&[ol]/g,'');
items = getData(id);
}
if(!items.length){ //忽略年龄条件查找
id = id.replace(/[ol]/g,'x');
result = getData(id);
}
if(!items.length){ //缩小访问查找
var l = id.replace(/x/g,'l');
items = getData(l);
var o = id.replace(/x/g,'o');
items = result.concat(getData(o));
}
}
return result;
return items;
}
//逆转ID
@@ -912,7 +936,7 @@
return '';
}
//简化选择器
//获取关系链条
function getChainById(id){
var arr = id.split(',');
var items = [];
@@ -923,7 +947,7 @@
return items.join('的');
}
function relationship(parameter){
return (function (parameter){
var options = {
text:'',
sex:-1,
@@ -942,41 +966,26 @@
for(var j=0;j<ids.length;j++){
var id = ids[j];
if(options.type=='chain'){
var data = getChainById(id);
if(data){
result.push(data);
var item = getChainById(id);
if(item){
result.push(item);
}
}else{
if(options.reverse){
id = reverseId(id,options.sex);
}
if(_data[id]){ //直接匹配称呼
result.push(_data[id][0]);
}else{ //高级查找
var data = getDataById(id); //忽略属性查找
if(!data.length){ //当无精确数据时,忽略年龄条件查找
id = id.replace(/&[ol]/g,'');
data = getDataById(id);
}
if(!data.length){
id = id.replace(/[ol]/g,'x');
data = getDataById(id);
}
if(!data.length){
var l = id.replace(/x/g,'l');
data = getDataById(l);
var o = id.replace(/x/g,'o');
data = data.concat(getDataById(o));
}
for(var d=0;d<data.length;d++){
result.push(data[d][0]);
var items = getDataById(id);
if(items.length){
result = result.concat(items);
}else if(id.indexOf('w')==0||id.indexOf('h')==0){ //找不到关系,随爱人叫
items = getDataById(id.substr(2));
if(items.length){
result = result.concat(items);
}
}
}
}
}
return unique(result);
}
return relationship;
});
});