1759 lines
75 KiB
JavaScript
1759 lines
75 KiB
JavaScript
/*!
|
|
* relationship - Chinese kinship library
|
|
* https://passer-by.com/relationship/
|
|
*
|
|
* Copyright (c) 2016-present, HaoLe Zheng
|
|
* Released under the MIT License.
|
|
* https://github.com/mumuy/relationship/blob/master/LICENSE
|
|
*/
|
|
!function (root, factory) {
|
|
if (typeof module === 'object' && module.exports){
|
|
module.exports = factory();
|
|
}else{
|
|
root.relationship = factory();
|
|
}
|
|
}(this,function (){
|
|
/*
|
|
* 关系数据语法说明:
|
|
* 【关系符】 f:父; m:母; h:夫; w:妻; s:子; d:女; xb:兄弟; ob:兄; lb:弟; xs:姐妹; os:姐; ls:妹
|
|
* 【修饰符】 1:男性; 0:女性; &o:年长; &l:年幼; #:隔断; [a|b]:并列
|
|
*/
|
|
// 关系链缩写规则
|
|
var _filter = [
|
|
/* 年龄 */
|
|
{//有大有小,增加不确定性
|
|
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:',xb$1#$1'
|
|
},
|
|
{//不知道性别,兄弟姐妹的姐妹是姐妹或自己
|
|
exp:/^,[olx][sb],[olx]s(.+)?$/,
|
|
str:',xs$1#$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:',xb$1#,1$1'
|
|
},
|
|
{//父母的女儿是姐妹或者自己
|
|
exp:/^,[mf],d(.+)?$/,
|
|
str:',xs$1#,0$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:',w$1#$1'
|
|
},
|
|
{//不知道性别,子女的爸爸是丈夫或自己
|
|
exp:/^,[ds],f(.+)?$/,
|
|
str:',h$1#$1'
|
|
},
|
|
{//夫妻的孩子就是自己的孩子
|
|
exp:/,[wh](,[ds])/g,
|
|
str:'$1'
|
|
},
|
|
{//夫妻的对方是自己
|
|
exp:/,w,h|,h,w/g,
|
|
str:''
|
|
},
|
|
{//并列关系处理1 X[A|B|C]Y = XAY#X[B|C]Y
|
|
exp:/(.+)?\[([^\|]+?)\|([^\[\]]*\|[^\[\]]*)\](.+)?/g,
|
|
str:'$1$2$4#$1[$3]$4'
|
|
},
|
|
{//并列关系处理2 X[A|B]Y = XAY#XBY
|
|
exp:/(.+)?\[([^\[\]\|]+?)\|([^\[\]\|]+?)?\](.+)?/g,
|
|
str:'$1$2$4#$1$3$4'
|
|
}
|
|
];
|
|
// 主要关系链
|
|
var _main = {
|
|
'':['自己','我','俺','本人','在下'],
|
|
//并称
|
|
'[f,f|f,m|m,f],[f,m],f':['老太奶爷','祖太奶爷'],
|
|
'[f,f|f,m|m,f],[f,m],m':['老太奶奶','祖太奶奶'],
|
|
'[f,m|m,f|m,m],[f,m],f':['老太姥爷','祖太姥爷'],
|
|
'[f,m|m,f|m,m],[f,m],m':['老太姥姥','祖太姥姥'],
|
|
'[f|m],[f|m],f':['太老爷'],
|
|
'[f|m],[f|m],f,ob':['伯太老爷'],
|
|
'[f|m],[f|m],f,ob,w':['伯太老姥'],
|
|
'[f|m],[f|m],f,lb':['叔太老爷'],
|
|
'[f|m],[f|m],f,lb,w':['叔太老姥'],
|
|
'[f|m],[f|m],f,xs':['姑太老姥'],
|
|
'[f|m],[f|m],f,xs,h':['姑太老爷'],
|
|
'[f|m],[f|m],m':['太老姥'],
|
|
'[f|m],[f|m],m,xb':['舅太老爷'],
|
|
'[f|m],[f|m],m,xb,w':['舅太老姥'],
|
|
'[f|m],[f|m],m,xs':['姨太老姥'],
|
|
'[f|m],[f|m],m,xs,h':['姨太老爷'],
|
|
'[f,f|f,m|m,f],f':['太奶爷','祖奶爷'],
|
|
'[f,f|f,m|m,f],f,ob':['伯太奶爷','太伯奶爷'],
|
|
'[f,f|f,m|m,f],f,ob,w':['伯太奶奶','太伯奶奶'],
|
|
'[f,f|f,m|m,f],f,lb':['叔太奶爷','太叔奶爷'],
|
|
'[f,f|f,m|m,f],f,lb,w':['叔太奶奶','太叔奶奶'],
|
|
'[f,f|f,m|m,f],f,xs':['姑太奶奶','太姑奶奶'],
|
|
'[f,f|f,m|m,f],f,xs,h':['姑太奶爷','太姑奶爷'],
|
|
'[f,f|f,m|m,f],m':['太奶奶','祖奶奶'],
|
|
'[f,f|f,m|m,f],m,xb':['舅太奶爷','太舅奶爷'],
|
|
'[f,f|f,m|m,f],m,xb,w':['舅太奶奶','太舅奶奶'],
|
|
'[f,f|f,m|m,f],m,xs':['姨太奶奶','太姨奶奶'],
|
|
'[f,f|f,m|m,f],m,xs,h':['姨太奶爷','太姨奶爷'],
|
|
'[f,m|m,f|m,m],f':['太姥爷','祖姥爷','太毑爷'],
|
|
'[f,m|m,f|m,m],f,ob':['伯太姥爷','伯叔姥爷'],
|
|
'[f,m|m,f|m,m],f,ob,w':['伯太姥姥','太伯姥姥'],
|
|
'[f,m|m,f|m,m],f,lb':['叔太姥爷','太叔姥爷'],
|
|
'[f,m|m,f|m,m],f,lb,w':['叔太姥姥','太叔姥姥'],
|
|
'[f,m|m,f|m,m],f,xs':['姑太姥姥','太姑姥姥'],
|
|
'[f,m|m,f|m,m],f,xs,h':['姑太姥爷','太姑姥爷'],
|
|
'[f,m|m,f|m,m],m':['太姥姥','祖姥姥','太毑毑'],
|
|
'[f,m|m,f|m,m],m,xb':['舅太姥爷','太舅姥爷'],
|
|
'[f,m|m,f|m,m],m,xb,w':['舅太姥姥','太舅姥姥'],
|
|
'[f,m|m,f|m,m],m,xs':['姨太姥姥','太姨姥姥'],
|
|
'[f,m|m,f|m,m],m,xs,h':['姨太姥爷','太姨姥爷'],
|
|
'[f,m][f,m]':['祖辈'],
|
|
'[f|m],f':['老爷'],
|
|
'[f|m],f,ob':['伯老爷'],
|
|
'[f|m],f,ob,w':['伯老姥'],
|
|
'[f|m],f,lb':['叔老爷'],
|
|
'[f|m],f,lb,w':['叔老姥'],
|
|
'[f|m],f,xs':['姑老姥'],
|
|
'[f|m],f,xs,h':['姑老爷'],
|
|
'[f|m],m':['老姥'],
|
|
'[f|m],m,xb':['舅老爷'],
|
|
'[f|m],m,xb,w':['舅老姥'],
|
|
'[f|m],m,xs':['姨老姥'],
|
|
'[f|m],m,xs,h':['姨老爷'],
|
|
'f,[f|m]':['祖父母','爷爷奶奶'],
|
|
'm,[f|m]':['外祖父母','外公外婆','姥姥姥爷'],
|
|
'[f|m]':['父母','爹娘','爹妈','爸妈','爸爸妈妈','父母亲','双亲','二亲','两亲','二老','高堂'],
|
|
'[f|m],[f,xs|m,xb],s':['舅姑爸','姑舅爸'],
|
|
'[f|m],[f,xs|m,xb],s&o,w':['舅姑姆','姑舅姆'],
|
|
'[f|m],[f,xs|m,xb],s&l,w':['舅姑婶','姑舅婶'],
|
|
'[f|m],[f,xs|m,xb],d':['姑舅娘娘'],
|
|
'[f|m],m,xs,s':['两姨爸'],
|
|
'[f|m],m,xs,s&o,w':['两姨姆'],
|
|
'[f|m],m,xs,s&l,w':['两姨婶'],
|
|
'[f|m],m,xs,d':['两姨娘娘'],
|
|
'f,[ob|ob,w]':['伯父母'],
|
|
'f,[lb|lb,w]':['叔父母'],
|
|
'f,[xs|xs,h]':['姑父母'],
|
|
'm,[xb|xb,w]':['舅父母'],
|
|
'm,[xs|xs,h]':['姨父母'],
|
|
'w,[f|m]':['岳父母','岳父岳母','丈人丈母','舅姑'],
|
|
'w,f,[ob|ob,w]':['伯岳父母'],
|
|
'w,f,[lb|lb,w]':['叔岳父母'],
|
|
'w,f,[xs|xs,h]':['姑岳父母'],
|
|
'w,m,[xb|xb,w]':['舅岳父母'],
|
|
'w,m,[xs|xs,h]':['姨岳父母'],
|
|
'h,[f|m]':['公婆','翁姑','大家官','公公婆婆','姑嫜'],
|
|
'h,f,[ob|ob,w]':['伯公婆'],
|
|
'h,f,[lb|lb,w]':['叔公婆'],
|
|
'h,f,[xs|xs,h]':['姑公婆'],
|
|
'h,m,[xb|xb,w]':['舅公婆'],
|
|
'h,m,[xs|xs,h]':['姨公婆'],
|
|
'[ob|lb]':['兄弟','晜弟','亲兄弟','同胞兄弟'],
|
|
'[ob|lb],w':['兄弟媳妇','兄弟妇'],
|
|
'[os|ls]':['姐妹','亲姐妹','同胞姐妹'],
|
|
'[os|ls],h':['姐妹夫','姊妹婿'],
|
|
'[xb|xs]':['兄弟姐妹','同胞','同胞兄弟姐妹','手足'],
|
|
'[ob|os]':['哥哥姐姐'],
|
|
'[lb|ls]':['弟弟妹妹'],
|
|
'[ob|ob,w]':['哥哥嫂嫂'],
|
|
'[f,xb|m,xs],[s|d]':['从兄弟姐妹','从姐妹兄弟'],
|
|
'[f,xs|m,xb],[s|d]':['表兄弟姐妹','表姐妹兄弟','老表','阿表'],
|
|
'f,xb,[s|d]':['堂兄弟姐妹','堂姐妹兄弟','从父兄弟姐妹'],
|
|
'm,xs,[s|d]':['姨兄弟姐妹','姨姐妹兄弟','从母兄弟姐妹'],
|
|
'f,xs,[s|d]':['姑表兄弟姐妹'],
|
|
'm,xb,[s|d]':['舅表兄弟姐妹'],
|
|
'[f,xs|m,xb],s':['姑舅兄弟','舅姑兄弟'],
|
|
'[f,xs|m,xb],s&o':['姑舅哥','姑舅哥哥'],
|
|
'[f,xs|m,xb],s&l':['姑舅弟','姑舅弟弟'],
|
|
'[f,xs|m,xb],d':['姑舅姊妹','舅姑姊妹'],
|
|
'[f,xs|m,xb],d&o':['姑舅姐','姑舅姐姐'],
|
|
'[f,xs|m,xb],d&l':['姑舅妹','姑舅妹妹'],
|
|
'[f,xs|m,xb],s,s':['姑舅儿子'],
|
|
'[f,xs|m,xb],s,d':['姑舅女儿'],
|
|
'xb,[s|d]':['侄子女','侄子侄女'],
|
|
'xs,[s|d]':['甥子女','外甥子女'],
|
|
'[w|s|d]':['妻儿'],
|
|
'[s|d]':['子女','儿女','小孩','孩子','孩子们','孩儿','小孩儿','宝宝','宝贝','娃','儿辈','子辈','崽','幺儿'],
|
|
'[s|d],[s|d]':['孙辈'],
|
|
's,[s|d]':['孙子女'],
|
|
'd,[s|d]':['外孙子女'],
|
|
'[s|d]#[s|d],[s|d]':['儿孙','子孙','孙息'],
|
|
'[s,w|d,h],[f|m]':['亲家','儿女亲家'],
|
|
'[s,w|d,h],f':['亲家公','亲家父','亲家翁','亲家世翁','姻翁'],
|
|
'[s,w|d,h],f,f':['太姻翁'],
|
|
'[s,w|d,h],f,m':['太姻姆'],
|
|
'[s,w|d,h],f,f,f':['太姻翁'],
|
|
'[s,w|d,h],f,f,m':['太姻姆'],
|
|
'[s,w|d,h],f,f,ob':['姻伯翁'],
|
|
'[s,w|d,h],f,f,ob,w':['姻伯姆'],
|
|
'[s,w|d,h],f,f,lb':['姻叔翁'],
|
|
'[s,w|d,h],f,f,lb,w':['姻叔母'],
|
|
'[s,w|d,h],f,f,xb,s&o':['姻家兄'],
|
|
'[s,w|d,h],f,f,xb,s&o,w':['姻家兄妇'],
|
|
'[s,w|d,h],f,f,xb,s&l':['姻家弟'],
|
|
'[s,w|d,h],f,f,xb,s&l,w':['姻家弟妇'],
|
|
'[s,w|d,h],f,f,xb,s,s':['姻家侄'],
|
|
'[s,w|d,h],f,f,xb,s,s,w':['姻家侄妇'],
|
|
'[s,w|d,h],f,ob':['姻兄'],
|
|
'[s,w|d,h],f,ob,w':['姻兄妇'],
|
|
'[s,w|d,h],f,lb':['姻弟'],
|
|
'[s,w|d,h],f,lb,w':['姻弟妇'],
|
|
'[s,w|d,h],f,xb,s':['姻侄'],
|
|
'[s,w|d,h],f,xb,s,w':['姻侄妇'],
|
|
'[s,w|d,h],m':['亲家母','亲家婆','亲家姆','亲姆','姻姆'],
|
|
'[s,w|d,h],m,ob':['姻仁兄'],
|
|
'[s,w|d,h],m,ob,w':['姻仁兄妇'],
|
|
'[s,w|d,h],m,lb':['姻仁弟'],
|
|
'[s,w|d,h],m,lb,w':['姻仁弟妇'],
|
|
'[s,w|d,h],[f|m],f':['姻太翁'],
|
|
'[s,w|d,h],[f|m],m':['姻太姆'],
|
|
// 主线
|
|
'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,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,m':['烈祖母'],
|
|
'f,f,f,f,f':['天祖父','天祖','五世祖'],
|
|
'f,f,f,f,m':['天祖母'],
|
|
'f,f,f,f':['高祖父','外曾外曾外毑父','祖太公','祖太爷','祖太翁','祖太爷爷','四世祖'],
|
|
'f,f,f,m':['高祖母','外曾外曾外毑母','祖太婆','祖太奶','祖太姆','祖太奶奶'],
|
|
// 高祖辈
|
|
'f,f,m,f':['高外祖父','外曾外曾毑父'],
|
|
'f,f,m,m':['高外祖母','外曾外曾毑母'],
|
|
'f,m,f,f':['曾外曾祖父','外高外毑父'],
|
|
'f,m,f,m':['曾外曾祖母','外高外毑母'],
|
|
'f,m,m,f':['曾外曾外祖父','外高毑父'],
|
|
'f,m,m,m':['曾外曾外祖母','外高毑母'],
|
|
'm,f,f,f':['外高祖父','曾外曾外毑父'],
|
|
'm,f,f,m':['外高祖母','曾外曾外毑母'],
|
|
'm,f,m,f':['外高外祖父','曾外曾祖毑父'],
|
|
'm,f,m,m':['外高外祖母','曾外曾祖毑母'],
|
|
'm,m,f,f':['外曾外曾祖父','高外毑父'],
|
|
'm,m,f,m':['外曾外曾祖母','高外毑母'],
|
|
'm,m,m,f':['外曾外曾外祖父','高毑父'],
|
|
'm,m,m,m':['外曾外曾外祖母','高毑母'],
|
|
// 曾祖辈
|
|
'f,f,f':['曾祖父','曾祖','外曾外毑父','太公','太爷','祖爷','太翁','太爷爷','三世祖'],
|
|
'f,f,m':['曾祖母','外曾外毑母','太婆','太奶','太嬷','太姆','太奶奶','老娭毑'],
|
|
'f,m,f':['曾外祖父','曾外祖','外曾毑父','太外公','太外爷','太外翁','太外爷爷'],
|
|
'f,m,m':['曾外祖母','外曾毑母','太外婆','太外奶','太外姆','太外奶奶'],
|
|
'm,f,f':['外曾祖父','外曾祖','曾外毑父','外太公','外太爷','外太翁','外太爷爷','老外公','老外爷','老姥爷'],
|
|
'm,f,m':['外曾祖母','曾外毑母','外太婆','外太奶','外太姆','外太奶奶'],
|
|
'm,m,f':['外曾外祖父','外曾外祖','曾毑父','外太外公','外太外爷','外太外翁','外太外爷爷','外太姥爷'],
|
|
'm,m,m':['外曾外祖母','曾毑母','外太外婆','外太外奶','外太外姆','外太外奶奶','老外婆','老外奶','老姥姥','老姥娘'],
|
|
// 祖父辈
|
|
'f,f':['爷爷','祖父','奶爷','阿爷','阿公','嗲嗲','二世祖'],
|
|
'f,m':['奶奶','祖母','阿奶','阿嬷','阿嫲','嫲嫲','婻婻','娭毑','嗯奶'],
|
|
'm,f':['外公','外祖父','姥爷','阿公','客公','外爷','舅家爷','姥公','毑父','毑爹','毑公','毑爷','嘎公'],
|
|
'm,m':['外婆','外祖母','姥姥','姥娘','姥婆','阿婆','阿嬷','阿嫲','嫲嫲','外奶','客婆','舅家婆','姥婆','毑母','毑婆','毑毑','嘎嘎'],
|
|
'f,f,ob':['伯公','伯祖','伯翁','大爷爷','大爷','大公','大伯公','大阿爷'],
|
|
'f,f,ob,w':['伯婆','大奶奶','姆婆'],
|
|
'f,f,lb':['叔公','叔祖','叔翁','小爷爷','晚公'],
|
|
'f,f,lb,w':['叔婆','小奶奶','婶婆','晚婆'],
|
|
'f,f,xb':['堂祖父','x爷爷','x大爷','x爷','x公'],
|
|
'f,f,xb,w':['堂祖母','x奶奶','x大娘','x奶','x婆'],
|
|
'f,f,xs':['姑奶奶','祖姑'],
|
|
'f,f,xs,h':['姑爷爷','姑公公','祖姑丈','姑丈公','丈公'],
|
|
'f,m,xb':['舅爷爷','舅祖','舅爹','太舅父'],
|
|
'f,m,xb,w':['舅奶奶','妗婆','妗奶','太舅母'],
|
|
'f,m,xs':['姨奶奶','姨奶'],
|
|
'f,m,xs,h':['姨爷爷','姨公公','姨丈公','丈公'],
|
|
'm,f,ob':['伯外公','外伯祖','伯外祖','大外公','大姥爷','大外爷'],
|
|
'm,f,ob,w':['伯外婆','外姆婆','大外婆','大姥姥','大姥奶'],
|
|
'm,f,lb':['叔外公','外叔祖','叔外祖','小外公','小姥爷','小外爷'],
|
|
'm,f,lb,w':['叔外婆','外婶婆','小外婆','小姥姥','小姥奶'],
|
|
'm,f,xb':['堂外祖父','x外公','x姥爷','x外爷'],
|
|
'm,f,xb,w':['堂外祖母','x外婆','x姥姥','x姥奶','x外奶','x姥'],
|
|
'm,f,xs':['姑外婆','姑婆'],
|
|
'm,f,xs,h':['姑外公','姑公','外姑丈公','外丈公'],
|
|
'm,m,xb':['舅外公','舅公'],
|
|
'm,m,xb,w':['舅外婆','舅婆','妗姥姥','妗姥娘','妗姥','外妗婆'],
|
|
'm,m,xs':['姨外婆','姨婆'],
|
|
'm,m,xs,h':['姨外公','姨公','外姨丈公','外丈公'],
|
|
// 父辈
|
|
'f':['爸爸','父亲','老爸','阿爸','阿父','阿爹','老窦','老汉','老汉儿','老子','牙老子','牙老倌','爸','父','爹','爹爹','爹地','爹啲','老爹','老爷子','一世祖'],
|
|
'm':['妈妈','母亲','阿妈','阿毑','老母','老妈','老娘','老乸','老妈子','妈子','娘老子','姆嬷','姆妈','妈','母','娘','娘亲','妈咪'],
|
|
'f,ob':['伯父','伯伯','阿伯','大伯','大伯爷','大伯伯','大大','世父','大爹','大爸'],
|
|
'f,ob,w':['伯母','伯妈','伯娘','阿娘','姆姆','姆','世母','大娘','大妈','大妈妈','大姆妈'],
|
|
'f,lb':['叔叔','叔父','叔爸','叔爹','阿叔','叔儿','仲父','季父','叔仔','小叔','小爹','小爸','尕爸','幺爸','幺爹','幺叔','细叔','满叔','晚叔','叔'],
|
|
'f,lb,w':['婶婶','婶母','婶娘','婶妈','婶爹','阿婶','仲母','季母','小婶','小娘','小妈','尕婶','幺婶','细婶','满婶','晚婆','小婶娘','婶子','婶儿','家婶','叔母','叔妈','叔娘','婶'],
|
|
'f,os':['大姑','大姑妈','姑姊'],
|
|
'f,ls':['小姑','小姑妈','姑姐','姑妹','姑仔','尕娘','幺姑','幺姑姐','老姑','细姑','满姑'],
|
|
'f,xs':['姑妈','姑母','姑姑','嬢嬢','娘娘','姑','阿姑'],
|
|
'f,xs,h':['姑丈','姑父','姑爸','姑爹','姑夫','姑婿','亘'],
|
|
'm,ob':['大舅','大舅舅','舅父'],
|
|
'm,ob,w':['大舅妈','大妗'],
|
|
'm,lb':['小舅','小舅舅','舅仔','舅父仔','幺舅','老舅','细舅','满舅','尕阿舅'],
|
|
'm,lb,w':['小舅妈','小妗','细妗'],
|
|
'm,xb':['舅舅','舅父','舅爸','舅爹','娘舅','母舅','舅','阿舅'],
|
|
'm,xb,w':['舅妈','舅母','舅媳妇','妗','妗子','妗妗','妗妈','妗娘','妗母','阿妗'],
|
|
'm,os':['大姨','大姨妈'],
|
|
'm,os,h':['大姨父','大姨丈','大姨婿','大姨爸'],
|
|
'm,ls':['小姨','小姨妈','姨仔','幺姨','老姨','满姨','细姨','尕姨娘'],
|
|
'm,ls,h':['小姨父','小姨丈','小姨婿','小姨爹'],
|
|
'm,xs':['姨妈','姨母','姨姨','姨娘','阿姨','姨'],
|
|
'm,xs,h':['姨丈','姨父','姨爸','姨爹','姨夫','姨婿','姨郎','尹'],
|
|
'f,f,xb,s&o':['堂伯'],
|
|
'f,f,xb,s&o,w':['堂伯母'],
|
|
'f,f,xb,s&l':['堂叔'],
|
|
'f,f,xb,s&l,w':['堂婶'],
|
|
'f,f,xb,s':['堂叔伯'],
|
|
'f,f,xb,d':['堂姑'],
|
|
'f,f,xb,d,h':['堂姑丈'],
|
|
'm,f,xb,s':['堂舅'],
|
|
'm,f,xb,s,w':['堂舅妈'],
|
|
'm,f,xb,d':['堂姨'],
|
|
'm,f,xb,d,h':['堂姨丈'],
|
|
// 同辈
|
|
'f,xb,s&o':['堂哥','堂阿哥'],
|
|
'f,xb,s&o,w':['堂嫂','堂兄嫂'],
|
|
'f,xb,s&l':['堂弟','堂阿弟'],
|
|
'f,xb,s&l,w':['堂弟媳','堂弟媳','堂弟妹'],
|
|
'f,xb,d&o':['堂姐','堂阿姐'],
|
|
'f,xb,d&o,h':['堂姐夫'],
|
|
'f,xb,d&l':['堂妹','堂阿妹'],
|
|
'f,xb,d&l,h':['堂妹夫'],
|
|
// 婆家
|
|
'h,f,f,f':['曾祖公父','曾祖公','太公翁'],
|
|
'h,f,f,m':['曾祖婆母','曾祖婆','太奶亲'],
|
|
'h,f,m,f':['曾外祖公父','曾外祖公'],
|
|
'h,f,m,m':['曾外祖婆母','曾外祖婆'],
|
|
'h,m,f,f':['外曾祖公父','外曾祖公'],
|
|
'h,m,f,m':['外曾祖婆母','外曾祖婆'],
|
|
'h,m,m,f':['外曾外祖公父','外曾外祖公'],
|
|
'h,m,m,m':['外曾外祖婆母','外曾外祖婆'],
|
|
'h,f,f,f,ob':['伯曾祖公父','伯曾祖公','太伯翁'],
|
|
'h,f,f,f,ob,w':['伯曾祖婆母','伯曾祖婆','太姆婆'],
|
|
'h,f,f,f,lb':['叔曾祖公父','叔曾祖公','太叔翁'],
|
|
'h,f,f,f,lb,w':['叔曾祖婆母','叔曾祖婆','太婶婆'],
|
|
'h,f,f,f,xs':['姑曾祖婆母','姑曾祖婆'],
|
|
'h,f,f,f,xs,h':['姑曾祖公父','姑曾祖婆'],
|
|
'h,f,f':['祖公父','祖公','祖翁','奶公父'],
|
|
'h,f,m':['祖婆母','祖婆','奶婆母'],
|
|
'h,m,f':['外祖公父','外祖公','姥公父','姥公'],
|
|
'h,m,m':['外祖婆母','外祖婆','姥婆母','姥婆'],
|
|
'h,f':['公公','公父','家公','家官','翁亲','大官','老公公','老人公','公爹','老公爹','婆父','婆爹'],
|
|
'h,m':['婆婆','婆母','家婆','家娘','姑亲','大家','老婆婆','老人婆','婆妈','婆母娘','婆子妈'],
|
|
'h,f,ob':['伯公父','伯公','伯翁'],
|
|
'h,f,ob,w':['伯婆母','伯婆','伯姆'],
|
|
'h,f,lb':['叔公父','叔公','叔翁','叔祖'],
|
|
'h,f,lb,w':['叔婆母','叔婆','婶婆','婶婆婆','婶亲'],
|
|
'h,m,xb':['舅公父','舅公',],
|
|
'h,m,xb,w':['舅婆母','舅婆','妗婆婆'],
|
|
'h,m,xs':['姨婆母','姨婆'],
|
|
'h,m,xs,h':['姨公父','姨公'],
|
|
'h':['老公','丈夫','先生','官人','男人','汉子','夫','夫君','相公','夫婿','良人','老头子','爱人','老伴','那口子','配偶','伴侣','卿卿'],
|
|
'h,ob':['大伯子','大伯兄'],
|
|
'h,ob,w':['大婶子','大婶儿','大伯兄姊','伯嫂','姒妇','大伯嫂','大伯妇','大伯娘','夫兄嫂'],
|
|
'h,lb':['小叔子','小叔弟','小叔儿'],
|
|
'h,lb,w':['小婶子','小婶儿','小叔弟妹','叔妇','娣妇','小叔妇','小婶','夫弟妇'],
|
|
'h,xb':['伯叔'],
|
|
'h,xb,w':['妯娌'],
|
|
'h,xb,s':['叔侄','叔侄男','叔男','从男'],
|
|
'h,xb,d':['叔侄女','叔女','从女'],
|
|
'h,os':['大姑子','大姑姐','大娘姑','婆姐','婆婆姐'],
|
|
'h,os,h':['大姑夫','大亘子','婆姐夫','婆婆姐夫'],
|
|
'h,ls':['小姑子','小姑妹','婆妹','婆婆妹'],
|
|
'h,ls,h':['小姑夫','小亘子','婆妹夫','婆婆妹夫'],
|
|
'h,xs':['姑子','夫姑'],
|
|
'h,xs,h':['姑夫'],
|
|
'h,xs,s':['姑甥','姑甥男','姑男'],
|
|
'h,xs,d':['姑甥女','姑女'],
|
|
// 岳家
|
|
'w,f,f,f':['曾祖岳父','曾祖丈人','太爷丈人','祖爷丈人'],
|
|
'w,f,f,m':['曾祖岳母','曾祖丈母','曾祖丈母娘','祖奶丈母娘','太奶丈母娘'],
|
|
'w,f,m,f':['曾外祖岳父','曾外祖丈人','祖姥爷丈人','太姥爷丈'],
|
|
'w,f,m,m':['曾外祖岳母','曾外祖丈母','曾外祖丈母娘','祖姥丈母娘','太姥丈母娘'],
|
|
'w,m,f,f':['外曾祖岳父','外曾祖丈人','祖奶爷丈人','太奶爷丈人','祖姥爷丈人','太姥爷丈人'],
|
|
'w,m,f,m':['外曾祖岳母','外曾祖丈母','太奶丈母娘','祖姥丈母娘','太姥丈母娘'],
|
|
'w,m,m,f':['外曾外祖岳父','外曾外祖丈人','祖姥爷丈人','太姥爷丈人'],
|
|
'w,m,m,m':['外曾外祖岳母','外曾外祖丈母','外曾外祖丈母娘','祖姥丈母娘','太姥丈母娘'],
|
|
'w,f,f':['祖岳父','太岳父','奶岳父','祖丈人','爷丈人','奶爷丈人','奶丈爷','奶丈人','老丈爷'],
|
|
'w,f,m':['祖岳母','太岳母','奶岳母','祖丈母','祖丈母娘','奶丈母娘','奶丈姥','奶丈母','老丈姥'],
|
|
'w,f,ob':['伯岳父','姻伯','姻伯丈'],
|
|
'w,f,ob,w':['伯岳母','姻姆'],
|
|
'w,f,lb':['叔岳父','姻叔','姻叔丈'],
|
|
'w,f,lb,w':['叔岳母','姻婶'],
|
|
'w,m,f':['外祖岳父','外祖丈人','外太岳父','姥岳父','姥丈爷','姥丈人','姥爷丈人','老丈爷'],
|
|
'w,m,m':['外祖岳母','外祖丈母娘','外祖丈母','外太岳母','姥岳母','姥丈姥','姥丈母','姥丈母娘'],
|
|
'w,f':['岳父','岳丈','岳老子','老干爷','老丈人','丈母爷','老丈杆子','丈人爹','丈爷爹','岳翁','丈人','丈父','丈爷','外父','妻父','泰山','外舅','老亲爷'],
|
|
'w,m':['岳母','丈母娘','丈姥娘','岳母娘','老干娘','老丈母','丈人娘','丈母','丈姥','外母','泰水','外姑','老亲娘'],
|
|
'w':['老婆','妻子','太太','媳妇儿','媳妇','夫人','女人','婆娘','妻','内人','内子','娘子','爱妻','老太婆','老婆子','堂客','爱人','老伴','那口子','配偶','伴侣','卿卿'],
|
|
'w,ob':['大舅子','大舅兄','舅兄'],
|
|
'w,ob,w':['大舅妇','大舅姆','大舅兄嫂','舅嫂','大舅嫂','大舅姐','大舅媳妇','大妗子'],
|
|
'w,lb':['小舅子','小舅弟','舅弟'],
|
|
'w,lb,w':['小舅妇','小舅姆','小舅弟妇','舅弟媳','小舅妹','小舅媳妇','小妗子'],
|
|
'w,xb':['舅子','妻舅'],
|
|
'w,xb,w':['妻妗'],
|
|
'w,xb,s':['舅侄','舅侄男','舅男'],
|
|
'w,xb,d':['舅侄女','舅女'],
|
|
'w,os':['大姨子','大姨姐','姨姐'],
|
|
'w,os,h':['大姨夫','大姨姐夫','襟兄','大尹子'],
|
|
'w,ls':['小姨子','小姨妹','姨妹','姨仔','姨妹子'],
|
|
'w,ls,h':['小姨夫','小姨妹夫','襟弟','小尹子'],
|
|
'w,xs':['姨子','妻姨'],
|
|
'w,xs,h':['连襟','连桥','姨夫','姨夫爷','一担挑','老挑','担儿挑','连襟儿','妻尹'],
|
|
'w,xs,s':['姨甥','姨甥男','姨男','从男'],
|
|
'w,xs,d':['姨甥女','姨女','从女'],
|
|
// 兄弟
|
|
'ob':['哥哥','哥','兄','老哥','兄长','阿哥','大佬','胞哥'],
|
|
'ob,w':['嫂子','嫂','嫂嫂','哥嫂','兄姊','兄嫂','兄妇','兄妻','阿嫂'],
|
|
'lb':['弟弟','弟','胞弟','老弟','阿弟','细佬','小弟','幺弟','细弟','满弟'],
|
|
'lb,w':['弟妹','弟媳','弟媳妇','弟新妇','弟妇'],
|
|
'0,xb,w,xb,s':['舅眷舅男'],
|
|
'1,xb,w,xb,s':['叔眷舅男'],
|
|
'0,xb,w,xb,d':['舅眷舅女'],
|
|
'1,xb,w,xb,d':['叔眷舅女'],
|
|
'0,xb,w,xs,s':['舅眷姨男'],
|
|
'1,xb,w,xs,s':['叔眷姨男'],
|
|
'0,xb,w,xs,d':['舅眷姨女'],
|
|
'1,xb,w,xs,d':['叔眷姨女'],
|
|
'0,xb,s':['娘家侄子','娘家侄'],
|
|
'xb,s':['侄子','侄男','侄儿','阿侄','侄'],
|
|
'xb,s,s':['侄孙'],
|
|
'xb,d':['侄女','侄囡'],
|
|
// 姐妹
|
|
'os':['姐姐','姐','阿姊','胞姐','阿姐','家姐'],
|
|
'os,h':['姐夫','姐丈','姐婿','姊兄','姐夫哥','胞姐夫'],
|
|
'ls':['妹妹','妹','胞妹','老妹','阿妹','小妹','幺妹','细妹','满妹'],
|
|
'ls,h':['妹夫','妹丈','妹婿','妹弟','妹夫子','胞妹夫','小妹夫'],
|
|
'0,xs,h,xb,s':['姨姻叔男'],
|
|
'1,xs,h,xb,s':['姑姻叔男'],
|
|
'0,xs,h,xb,d':['姨姻叔女'],
|
|
'1,xs,h,xb,d':['姑姻叔女'],
|
|
'0,xs,h,xs,s':['姨姻姑男'],
|
|
'1,xs,h,xs,s':['姑姻姑男'],
|
|
'0,xs,h,xs,d':['姨姻姑女'],
|
|
'1,xs,h,xs,d':['姑姻姑女'],
|
|
'0,xs,s':['姨甥男'],
|
|
'0,xs,s,w':['姨甥媳妇'],
|
|
'0,xs,d':['姨甥女'],
|
|
'0,xs,d,h':['姨甥女婿'],
|
|
'xs,s':['外甥','外甥男','外甥儿','外甥子','外甥儿子'],
|
|
'xs,d':['外甥女','外甥囡','外甥女儿','外甥闺女'],
|
|
// 堂表亲
|
|
'f,xb,s,s':['堂侄','堂侄子','堂侄儿','堂侄男','从父侄男','叔伯侄男','从父侄子','叔伯侄子'],
|
|
'f,xb,s,s,w':['堂侄媳妇','堂侄妇','从父侄妇','叔伯侄妇'],
|
|
'f,xb,d,s':['堂外甥','堂甥男','从父甥男','叔伯甥男'],
|
|
'f,xb,d,s,w':['堂甥媳妇','堂甥妇','从父甥妇','叔伯甥妇'],
|
|
// 子辈
|
|
's':['儿子','男儿','息男','闺男','囝囝','囝男','小子','娃子','男亲','长子','次子','幼子','儿','仔','子','阿仔','仔仔','一世孙'],
|
|
's,w':['儿媳','儿媳妇','儿媳妇儿','新妇','心抱','子妇','息妇','息妇儿'],
|
|
's,w,f':['亲家公'],
|
|
's,w,m':['亲家母'],
|
|
's,s':['孙子','孙男','孙男儿','孙儿','二世孙'],
|
|
's,s,w':['孙媳妇','孙媳','孙妇','孙息妇','孙新妇'],
|
|
's,s,s':['曾孙','曾孙男','重孙','重孙子','息仔','三世孙'],
|
|
's,s,s,w':['曾孙妇','重孙媳妇'],
|
|
's,s,s,s':['玄孙','元孙','膀孙','四世孙'],
|
|
's,s,s,s,w':['玄孙媳妇'],
|
|
's,s,s,s,s':['来孙','五世孙'],
|
|
's,s,s,s,s,w':['来孙媳妇'],
|
|
's,s,s,s,s,s':['晜孙','六世孙'],
|
|
's,s,s,s,s,s,w':['晜孙媳妇'],
|
|
's,s,s,s,s,s,s':['仍孙','七世孙'],
|
|
's,s,s,s,s,s,s,w':['仍孙媳妇'],
|
|
's,s,s,s,s,s,s,s':['云孙','八世孙'],
|
|
's,s,s,s,s,s,s,s,s':['耳孙','九世孙'],
|
|
's,s,s,s,s,s,s,s,s,w':['耳孙媳妇'],
|
|
's,s,s,s,s,s,s,s,d':['耳孙女'],
|
|
's,s,s,s,s,s,s,s,d,h':['耳孙女婿'],
|
|
's,s,s,s,s,s,s,d':['云孙女'],
|
|
's,s,s,s,s,s,s,d,h':['云孙女婿'],
|
|
's,s,s,s,s,s,s,d,s':['耳外孙'],
|
|
's,s,s,s,s,s,s,d,s,w':['耳外孙媳妇'],
|
|
's,s,s,s,s,s,s,d,d':['耳外孙女'],
|
|
's,s,s,s,s,s,s,d,d,h':['耳外孙女婿'],
|
|
's,s,s,s,s,s,d':['仍孙女'],
|
|
's,s,s,s,s,s,d,h':['仍孙女婿'],
|
|
's,s,s,s,s,s,d,s':['云外孙'],
|
|
's,s,s,s,s,s,d,s,w':['云外孙媳妇'],
|
|
's,s,s,s,s,s,d,d':['云外孙女'],
|
|
's,s,s,s,s,s,d,d,h':['云外孙女婿'],
|
|
's,s,s,s,s,d':['晜孙女'],
|
|
's,s,s,s,s,d,h':['晜孙女婿'],
|
|
's,s,s,s,s,d,s':['仍外孙'],
|
|
's,s,s,s,s,d,s,w':['仍外孙媳妇'],
|
|
's,s,s,s,s,d,d':['仍外孙女'],
|
|
's,s,s,s,s,d,d,h':['仍外孙女婿'],
|
|
's,s,s,s,d':['来孙女'],
|
|
's,s,s,s,d,h':['来孙女婿'],
|
|
's,s,s,s,d,s':['晜外孙'],
|
|
's,s,s,s,d,s,w':['晜外孙媳妇'],
|
|
's,s,s,s,d,d':['晜外孙女'],
|
|
's,s,s,s,d,d,h':['晜外孙女婿'],
|
|
's,s,s,d':['玄孙女','元孙女','膀孙女'],
|
|
's,s,s,d,h':['玄孙女婿'],
|
|
's,s,s,d,s':['来外孙'],
|
|
's,s,s,d,s,w':['来外孙媳妇'],
|
|
's,s,s,d,d':['来外孙女'],
|
|
's,s,s,d,d,h':['来外孙女婿'],
|
|
's,s,d':['曾孙女','重孙女','息女'],
|
|
's,s,d,h':['曾孙女婿'],
|
|
's,s,d,s':['玄外孙'],
|
|
's,s,d,s,w':['玄外孙媳妇'],
|
|
's,s,d,d':['玄外孙女'],
|
|
's,s,d,d,h':['玄外孙女婿'],
|
|
's,d':['孙女','孙女儿','孙囡'],
|
|
's,d,h':['孙女婿','孙婿','孙息婿'],
|
|
's,d,s':['曾外孙','外息仔'],
|
|
's,d,s,w':['曾外孙媳妇'],
|
|
's,d,s,s':['曾外曾孙'],
|
|
's,d,s,s,w':['曾外曾孙媳妇'],
|
|
's,d,s,d':['曾外曾孙女'],
|
|
's,d,s,d,h':['曾外曾孙女婿'],
|
|
's,d,d':['曾外孙女','外息女'],
|
|
's,d,d,h':['曾外孙女婿'],
|
|
's,d,d,s':['曾外曾外孙'],
|
|
's,d,d,s,w':['曾外曾外孙媳妇'],
|
|
's,d,d,d':['曾外曾外孙女'],
|
|
's,d,d,d,h':['曾外曾外孙女婿'],
|
|
'd':['女儿','千金','掌上明珠','息女','闺女','囡女','乖囡','囡囡','囡嗯','丫头','姑娘','妮子','女亲','长女','次女','幼女','女','阿女','女女'],
|
|
'd,h':['女婿','姑爷','女婿子','女婿儿','儿婿','子婿','息婿','郎婿','息婿儿','囝婿'],
|
|
'd,h,f':['亲家公'],
|
|
'd,h,m':['亲家母'],
|
|
'd,s':['外孙','外孙子','外孙儿'],
|
|
'd,s,w':['外孙媳妇','外孙妇','外孙新妇'],
|
|
'd,s,s':['外曾孙','重外孙','外息仔'],
|
|
'd,s,s,w':['外曾孙媳妇','外曾孙妇'],
|
|
'd,s,s,s':['外玄孙','外元孙','外膀孙'],
|
|
'd,s,s,s,w':['外玄孙媳妇'],
|
|
'd,s,s,d':['外玄孙女','外元孙女','外膀孙女'],
|
|
'd,s,s,d,h':['外玄孙女婿'],
|
|
'd,s,d':['外曾孙女','重外孙女','外息女'],
|
|
'd,s,d,h':['外曾孙女婿','重外孙女婿'],
|
|
'd,s,d,s':['外玄外孙'],
|
|
'd,s,d,s,w':['外玄外孙媳妇'],
|
|
'd,s,d,d':['外玄外孙女'],
|
|
'd,s,d,d,h':['外玄外孙女婿'],
|
|
'd,d':['外孙女','外孙囡','外孙女儿'],
|
|
'd,d,h':['外孙女婿','外孙婿'],
|
|
'd,d,s':['外曾外孙','外息仔'],
|
|
'd,d,s,w':['外曾外孙媳妇'],
|
|
'd,d,s,s':['外曾外曾孙'],
|
|
'd,d,s,s,w':['外曾外曾孙媳妇'],
|
|
'd,d,s,d':['外曾外曾孙女'],
|
|
'd,d,s,d,h':['外曾外曾孙女婿'],
|
|
'd,d,d':['外曾外孙女','外息女'],
|
|
'd,d,d,h':['外曾外孙女婿'],
|
|
'd,d,d,s':['外曾外曾外孙'],
|
|
'd,d,d,s,w':['外曾外曾外孙媳妇'],
|
|
'd,d,d,d':['外曾外曾外孙女'],
|
|
'd,d,d,d,h':['外曾外曾外孙女婿'],
|
|
};
|
|
/*
|
|
* 【分支标签】 - 仅内部使用
|
|
* {G1M}:父辈旁系(男); {G1W}:父辈旁系(女); {G1}:父辈旁系(后代); {G0}:同辈旁系;
|
|
* {M1M}:父辈姻亲(姻); {M1W}:父辈姻亲(眷); {M0}:同辈姻亲; {M-1}:子辈姻亲; {M-2}:孙辈姻亲;
|
|
* ?:称呼中前缀占位符,没有默认为头部
|
|
*/
|
|
// 分支前缀
|
|
var _prefix = {
|
|
'G3':{
|
|
'f,f,f,xb':['族'],
|
|
},
|
|
'{G2}':{
|
|
'f,f,xb':['从祖'],
|
|
'm,f,xb':['外从祖'],
|
|
},
|
|
'{G1}':{
|
|
'f,xb':['堂','同堂','从父','叔伯','从'],
|
|
'f,xs':['姑表','姑家'],
|
|
'm,xb':['舅表','舅家'],
|
|
'm,xs':['姨','从母','姨家','从'],
|
|
'f,f,xb,s':['从堂','再从父','叔伯叔伯','再从'],
|
|
'f,f,xb,d':['堂姑表','从父姑表'],
|
|
'f,f,xs,s':['姑表叔表'],
|
|
'f,f,xs,d':['姑表姑表'],
|
|
'f,m,xb,s':['舅表叔表'],
|
|
'f,m,xb,d':['舅表姑表'],
|
|
'f,m,xs,s':['从母叔表'],
|
|
'f,m,xs,d':['从母姑表'],
|
|
'm,f,xb,s':['堂舅表','从父舅表'],
|
|
'm,f,xb,d':['堂姨表',,'从父姨表'],
|
|
'm,f,xs,s':['姑表舅表'],
|
|
'm,f,xs,d':['姑表姨表'],
|
|
'm,m,xb,s':['舅表舅表'],
|
|
'm,m,xb,d':['舅表姨表'],
|
|
'm,m,xs,s':['从母舅表'],
|
|
'm,m,xs,d':['再从母','姨姨','再从'],
|
|
'f,f,f,xb,s,s':['再从堂','三从父'],
|
|
'm,m,m,xs,d,d':['三从母'],
|
|
'f,f,f,f,xb,s,s,s':['三从堂','四从父'],
|
|
'm,m,m,m,xs,d,d,d':['四从母'],
|
|
},
|
|
'{G1M}':{
|
|
'f,ob':['伯'],
|
|
'f,lb':['叔'],
|
|
'm,xb':['舅'],
|
|
'f,f,xb,s&o':['堂伯','从父伯','叔伯伯','从伯'],
|
|
'f,f,xb,s&l':['堂叔','从父叔','叔伯叔','从叔'],
|
|
'f,f,f,xb,s,s&o':['从堂伯'],
|
|
'f,f,f,xb,s,s&l':['从堂叔'],
|
|
'f,f,xs,s&o':['姑表伯'],
|
|
'f,f,xs,s&l':['姑表叔'],
|
|
'f,m,xb,s&o':['舅表伯'],
|
|
'f,m,xb,s&l':['舅表叔'],
|
|
'f,m,xs,s&o':['姨伯','从母伯','从伯'],
|
|
'f,m,xs,s&l':['姨叔','从母叔','从叔'],
|
|
'm,f,xb,s':['堂舅','从父舅'],
|
|
'm,f,xs,s':['姑表舅'],
|
|
'm,m,xb,s':['舅表舅'],
|
|
'm,m,xs,s':['姨舅','从母舅'],
|
|
},
|
|
'{G1W}':{
|
|
'f,xs':['姑'],
|
|
'm,xs':['姨'],
|
|
'f,f,xb,d':['堂姑','从父姑'],
|
|
'f,f,f,xb,s,d':['从堂姑'],
|
|
'f,f,xs,d':['姑表姑'],
|
|
'f,m,xb,d':['舅表姑'],
|
|
'f,m,xs,d':['姨姑','从母姑'],
|
|
'm,f,xb,d':['堂姨','从父姨'],
|
|
'm,f,xs,d':['姑表姨'],
|
|
'm,m,xb,d':['舅表姨'],
|
|
'm,m,xs,d':['姨姨','从母姨'],
|
|
},
|
|
'{G0}':{
|
|
'xb':['侄'],
|
|
'1,xb':['从'],
|
|
'1,f,xb,s':['再从'],
|
|
'1,f,f,xb,s,s':['三从'],
|
|
'h,xb':['叔侄','叔伯'],
|
|
'w,xb':['舅侄'],
|
|
'xs':['甥'],
|
|
'0,xs':['从'],
|
|
'0,m,xs,d':['再从'],
|
|
'0,m,m,xs,d,d':['三从'],
|
|
'h,xs':['姑甥'],
|
|
'w,xs':['姨甥','襟侄'],
|
|
},
|
|
'{M1W}':{
|
|
'f,xb,w':['叔眷'],
|
|
'f,f,xb,s,w':['从父叔眷'],
|
|
'f,f,xs,s,w':['姑表叔眷'],
|
|
'f,m,xb,s,w':['舅表叔眷'],
|
|
'f,m,xs,s,w':['姨表叔眷'],
|
|
'm,xb,w':['舅眷'],
|
|
'm,f,xb,s,w':['从父舅眷'],
|
|
'm,f,xs,s,w':['姑表舅眷'],
|
|
'm,m,xb,s,w':['舅表舅眷'],
|
|
'm,m,xs,s,w':['姨表舅眷'],
|
|
},
|
|
'{M1M}':{
|
|
'f,xs,h':['姑姻'],
|
|
'f,f,xb,d,h':['从父姑姻'],
|
|
'f,f,xs,d,h':['姑表姑姻'],
|
|
'f,m,xb,d,h':['舅表姑姻'],
|
|
'f,m,xs,d,h':['姨表姑姻'],
|
|
'm,xs,h':['姨姻'],
|
|
'm,f,xb,d,h':['从父姨姻'],
|
|
'm,f,xs,d,h':['姑表姨姻'],
|
|
'm,m,xb,d,h':['舅表姨姻'],
|
|
'm,m,xs,d,h':['姨表姨姻'],
|
|
},
|
|
'{M0}':{
|
|
'xb,w':['兄弟眷'],
|
|
'xs,h':['姊妹姻'],
|
|
'w,xb,w':['内兄弟眷'],
|
|
'w,xs,h':['内姊妹姻'],
|
|
'h,xb,w':['外兄弟眷'],
|
|
'h,xs,h':['外姊妹姻'],
|
|
'f,xb,s,w':['从父兄弟眷'],
|
|
'f,xb,d,h':['从父姊妹姻'],
|
|
'f,xs,s,w':['姑表兄弟眷'],
|
|
'f,xs,d,h':['姑表姊妹姻'],
|
|
'm,xb,s,w':['舅表兄弟眷'],
|
|
'm,xb,d,h':['舅表姊妹姻'],
|
|
'm,xs,s,w':['从母兄弟眷'],
|
|
'm,xs,d,h':['从母姊妹姻'],
|
|
},
|
|
'{M-1}':{
|
|
's,w':['男眷','息眷'],
|
|
'd,h':['女姻','息姻'],
|
|
'xb,s,w':['侄眷'],
|
|
'xb,d,h':['侄姻'],
|
|
'xs,s,w':['甥眷'],
|
|
'xs,d,h':['甥姻'],
|
|
'f,xb,s,s,w':['堂侄眷'],
|
|
'f,xb,s,d,h':['堂侄姻'],
|
|
'f,xb,d,s,w':['堂甥眷'],
|
|
'f,xb,d,d,h':['堂甥姻'],
|
|
'f,xs,s,s,w':['姑表侄眷'],
|
|
'f,xs,s,d,h':['姑表侄姻'],
|
|
'f,xs,d,s,w':['姑表甥眷'],
|
|
'f,xs,d,d,h':['姑表甥姻'],
|
|
'm,xb,s,s,w':['舅表侄眷'],
|
|
'm,xb,s,d,h':['舅表侄姻'],
|
|
'm,xb,d,s,w':['舅表甥眷'],
|
|
'm,xb,d,d,h':['舅表甥姻'],
|
|
'm,xb,s,s,w':['姨侄眷'],
|
|
'm,xb,s,d,h':['姨侄姻'],
|
|
'm,xb,d,s,w':['姨甥眷'],
|
|
'm,xb,d,d,h':['姨甥姻'],
|
|
},
|
|
'{M-2}':{
|
|
's,s,w':['孙眷'],
|
|
's,d,h':['孙姻'],
|
|
'd,s,w':['外孙眷'],
|
|
'd,d,h':['外孙姻'],
|
|
'xb,s,s,w':['侄孙眷'],
|
|
'xb,s,d,h':['侄孙姻'],
|
|
'xb,d,s,w':['侄外孙眷'],
|
|
'xb,d,d,h':['侄外孙姻'],
|
|
'xs,s,s,w':['甥孙眷'],
|
|
'xs,s,d,h':['甥孙姻'],
|
|
'xs,d,s,w':['甥外孙眷'],
|
|
'xs,d,d,h':['甥外孙姻'],
|
|
}
|
|
};
|
|
// 分支关系链
|
|
var _branch = {
|
|
'f,f,f,f,f,f,f,f,{G1M}':['鼻祖父'],
|
|
'f,f,f,f,f,f,f,f,{G1M},w':['鼻祖母'],
|
|
'f,f,f,f,f,f,f,f,{G1W}':['鼻祖母'],
|
|
'f,f,f,f,f,f,f,f,{G1W},h':['鼻祖父'],
|
|
'f,f,f,f,f,f,f,{G1M}':['远祖父'],
|
|
'f,f,f,f,f,f,f,{G1M},w':['远祖母'],
|
|
'f,f,f,f,f,f,f,{G1W}':['远祖母'],
|
|
'f,f,f,f,f,f,f,{G1W},h':['远祖父'],
|
|
'f,f,f,f,f,f,{G1M}':['太祖父'],
|
|
'f,f,f,f,f,f,{G1M},w':['太祖母'],
|
|
'f,f,f,f,f,f,{G1W}':['姑太祖母'],
|
|
'f,f,f,f,f,f,{G1W},h':['姑太祖父'],
|
|
'f,f,f,f,f,{G1M}':['烈祖父'],
|
|
'f,f,f,f,f,{G1M},w':['烈祖母'],
|
|
'f,f,f,f,f,{G1W}':['烈祖母'],
|
|
'f,f,f,f,f,{G1W},h':['烈祖父'],
|
|
'f,f,f,f,{G1M}':['天祖父'],
|
|
'f,f,f,f,{G1M},w':['天祖母'],
|
|
'f,f,f,f,{G1W}':['天祖母'],
|
|
'f,f,f,f,{G1W},h':['天祖父'],
|
|
'f,f,f,{G1M}':['高祖父'],
|
|
'f,f,f,{G1M},w':['高祖母'],
|
|
'f,f,f,{G1W}':['高祖母'],
|
|
'f,f,f,{G1W},h':['高祖父'],
|
|
'f,f,{G1M}':['?曾祖父','曾?祖父','?太公','太?公','?公太','太?爷','?太爷','?太爷爷','太?爷爷'],
|
|
'f,f,{G1M},w':['?曾祖母','曾?祖母','?太婆','太?婆','?婆太','太?奶','?太奶','?太奶奶','太?奶奶'],
|
|
'f,f,{G1W}':['?曾祖母','曾?祖母','?太婆','太?婆','?婆太','太?奶','?太奶','?太奶奶','太?奶奶'],
|
|
'f,f,{G1W},h':['?曾祖父','曾?祖父','?太公','太?公','?公太','太?爷','?太爷','?太爷爷','太?爷爷'],
|
|
'f,m,{G1M}':['?曾外祖父','曾外?祖父','?太外公','太外?公','太外?爷','?太外爷','?太外爷爷','太外?爷爷'],
|
|
'f,m,{G1M},w':['?曾外祖母','曾外?祖母','?太外婆','太外?婆','太外?奶','?太外奶','?太外奶奶','太外?奶奶'],
|
|
'f,m,{G1W}':['?曾外祖母','曾外?祖母','?太外婆','太外?婆','太外?奶','?太外奶','?太外奶奶','太外?奶奶'],
|
|
'f,m,{G1W},h':['?曾外祖父','曾外?祖父','?太外公','太外?公','太外?爷','?太外爷','?太外爷爷','太外?爷爷'],
|
|
'm,f,{G1M}':['?外曾祖父','外曾?祖父','?外太公','外太?公','外太?爷','?外太爷','?外太爷爷','外太?爷爷'],
|
|
'm,f,{G1M},w':['?外曾祖母','外曾?祖母','?外太婆','外太?婆','外太?奶','?外太奶','?外太奶奶','外太?奶奶'],
|
|
'm,f,{G1W}':['?外曾祖母','外曾?祖母','?外太婆','外太?婆','外太?奶','?外太奶','?外太奶奶','外太?奶奶'],
|
|
'm,f,{G1W},h':['?外曾祖父','外曾?祖父','?外太公','外太?公','外太?爷','?外太爷','?外太爷爷','外太?爷爷'],
|
|
'm,m,{G1M}':['?外曾外祖父','外曾外?祖父','?外太外公','外太外?公','外太外?爷','?外太外爷','?外太外爷爷','外太外?爷爷'],
|
|
'm,m,{G1M},w':['?外曾外祖母','外曾外?祖母','?外太外婆','外太外?婆','外太外?奶','?外太外奶','?外太外奶奶','外太外?奶奶'],
|
|
'm,m,{G1W}':['?外曾外祖母','外曾外?祖母','?外太外婆','外太外?婆','外太外?奶','?外太外奶','?外太外奶奶','外太外?奶奶'],
|
|
'm,m,{G1W},h':['?外曾外祖父','外曾外?祖父','?外太外公','外太外?公','外太外?爷','?外太外爷','?外太外爷爷','外太?外爷爷'],
|
|
'f,{G1M}':['祖父','公','太?父','奶爷','爷爷','爷'],
|
|
'f,{G1M},w':['祖母','婆','太?母','奶奶','奶'],
|
|
'f,{G1W}':['祖母','婆','太?母','奶奶','奶'],
|
|
'f,{G1W},h':['祖父','公','太?父','奶爷','爷爷','爷'],
|
|
'm,{G1M}':['外祖父','外公','外爷','外?公','外?祖父','外太?父','姥爷','姥公','毑公','毑爷','嘎公'],
|
|
'm,{G1M},w':['外祖母','外婆','外奶','外?婆','外?祖母','外太?母','姥姥','姥娘','姥婆','毑婆','毑毑','嘎嘎'],
|
|
'm,{G1W}':['外祖母','外婆','外奶','外?婆','外?祖母','外太?母','姥姥','姥娘','姥婆','毑婆','毑毑','嘎嘎'],
|
|
'm,{G1W},h':['外祖父','外公','外爷','外?公','外?祖父','外太?父','姥爷','姥公','毑公','毑爷','嘎公'],
|
|
'f,{G1},s&o':['伯父','伯伯','伯'],
|
|
'f,{G1},s&o,w':['伯母'],
|
|
'f,{G1},s&l':['叔父','叔爸','叔叔','叔'],
|
|
'f,{G1},s&l,w':['叔母','婶'],
|
|
'f,{G1},d':['姑母','姑姑','姑妈','姑'],
|
|
'f,{G1},d,h':['姑父'],
|
|
'm,{G1},s':['舅父','舅舅','舅爸','舅'],
|
|
'm,{G1},s,w':['舅母','舅妈'],
|
|
'm,{G1},d':['姨母','姨姨','姨妈','姨'],
|
|
'm,{G1},d,h':['姨父','姨爸','姨丈'],
|
|
'{G1},s&o':['哥'],
|
|
'{G1},s&o,w':['嫂','嫂子','兄妇'],
|
|
'{G1},s&l':['弟'],
|
|
'{G1},s&l,w':['弟媳','弟妇'],
|
|
'{G1},[s&o|s&l]':['兄弟'],
|
|
'{G1},s,s':['侄男','侄子','侄儿'],
|
|
'{G1},s,s,w':['侄妇'],
|
|
'{G1},s,s,s':['侄孙男'],
|
|
'{G1},s,s,s,w':['侄孙妇'],
|
|
'{G1},s,s,d':['侄孙女'],
|
|
'{G1},s,s,d,h':['侄孙婿'],
|
|
'{G1},s,d':['侄女','侄女儿'],
|
|
'{G1},s,d,h':['侄婿'],
|
|
'{G1},s,d,s':['侄外孙男'],
|
|
'{G1},s,d,s,w':['侄外孙妇'],
|
|
'{G1},s,d,d':['侄外孙女'],
|
|
'{G1},s,d,d,h':['侄外孙婿'],
|
|
'{G1},d&o':['姐'],
|
|
'{G1},d&o,h':['姐夫'],
|
|
'{G1},d&l':['妹'],
|
|
'{G1},d&l,h':['妹夫'],
|
|
'{G1},[d&o|d&l]':['姐妹'],
|
|
'{G1},d,s':['甥男'],
|
|
'{G1},d,s,w':['甥妇'],
|
|
'{G1},d,s,s':['甥孙男'],
|
|
'{G1},d,s,s,w':['甥孙妇'],
|
|
'{G1},d,s,d':['甥孙女'],
|
|
'{G1},d,s,d,h':['甥孙婿'],
|
|
'{G1},d,d':['甥女'],
|
|
'{G1},d,d,h':['甥婿'],
|
|
'{G1},d,d,s':['甥外孙男'],
|
|
'{G1},d,d,s,w':['甥外孙妇'],
|
|
'{G1},d,d,d':['甥外孙女'],
|
|
'{G1},d,d,d,h':['甥外孙婿'],
|
|
'{G3}':['曾祖父'],
|
|
'{G3},w':['曾祖母'],
|
|
'{G3},s':['祖父'],
|
|
'{G3},s,w':['祖母'],
|
|
'{G3},s,s':['父'],
|
|
'{G3},s,s,w':['母'],
|
|
'{G3},s,s,s&o':['兄'],
|
|
'{G3},s,s,s&l':['弟'],
|
|
'{G3},s,s,[s&o|s&l]':['兄弟'],
|
|
'{G3},s,s,d&o':['姊'],
|
|
'{G3},s,s,d&l':['妹'],
|
|
'{G3},s,s,[d&o|d&l]':['姊妹'],
|
|
'{G3},s,s,s,s':['男','子'],
|
|
'{G3},s,s,s,d':['女'],
|
|
'{G2}':['祖父'],
|
|
'{G2},w':['祖母'],
|
|
'{G2},s':['父'],
|
|
'{G2},s,w':['母'],
|
|
'{G2},s,s&o':['兄'],
|
|
'{G2},s,s&l':['弟'],
|
|
'{G2},s,[s&o|s&l]':['兄弟'],
|
|
'{G2},s,d&o':['姊'],
|
|
'{G2},s,d&l':['妹'],
|
|
'{G2},s,[d&o|d&l]':['姊妹'],
|
|
'{G2},s,s,s':['男','子'],
|
|
'{G2},s,s,d':['女'],
|
|
'h,f,{G1M}':['祖公父','祖公','祖翁'],
|
|
'h,f,{G1M},w':['祖婆母','祖婆','祖姆'],
|
|
'h,{G1M}':['公父','公公'],
|
|
'h,{G1M},w':['婆母','婆婆'],
|
|
'h,{G1W}':['婆母','婆婆'],
|
|
'h,{G1W},h':['公父','公公'],
|
|
'h,{G1},s&o':['大伯子','大伯兄'],
|
|
'h,{G1},s&o,w':['大婶子','大伯嫂'],
|
|
'h,{G1},s&l':['小叔子','小叔弟'],
|
|
'h,{G1},s&l,w':['小婶子','小叔弟妇'],
|
|
'h,{G1},d&o':['大姑子','大姑姐'],
|
|
'h,{G1},d&o,h':['大姑夫','大姑姐夫'],
|
|
'h,{G1},d&l':['小姑子','小姑妹'],
|
|
'h,{G1},d&l,h':['小姑夫','小姑妹夫'],
|
|
'w,f,{G1M}':['祖岳父','太?岳','祖丈人','爷丈人','奶爷丈人'],
|
|
'w,f,{G1M},w':['祖岳母','太?岳母','祖丈母','祖丈母娘','奶丈母娘','奶丈母'],
|
|
'w,f,{G1W}':['祖岳母',,'太?岳母','祖丈母','祖丈母娘','奶丈母娘','奶丈母'],
|
|
'w,f,{G1W},h':['祖岳父',,'太?岳父','祖丈人','爷丈人','奶爷丈人'],
|
|
'w,m,{G1M}':['外祖岳父','太外?岳','外祖丈人','姥爷丈人'],
|
|
'w,m,{G1M},w':['外祖岳母','太外?岳母','外祖丈母','外祖丈母娘','姥丈母娘','姥丈母'],
|
|
'w,m,{G1W}':['外祖岳母',,'太外?岳母','外祖丈母','外祖丈母娘','姥丈母娘','姥丈母'],
|
|
'w,m,{G1W},h':['外祖岳父',,'太外?岳父','外祖丈人','外爷丈人','姥爷丈人'],
|
|
'w,{G1M}':['岳父','丈人','丈人爹'],
|
|
'w,{G1M},w':['岳母','丈母','丈母娘'],
|
|
'w,{G1W}':['岳母','丈母','丈母娘'],
|
|
'w,{G1W},h':['岳父','丈人','丈人爹'],
|
|
'w,{G1},s&o':['大舅子','大舅兄','舅兄'],
|
|
'w,{G1},s&o,w':['大舅妇','大舅姆','大舅兄妇','舅兄妇','舅姐','大舅姐','大妗子'],
|
|
'w,{G1},s&l':['小舅子','小舅弟','舅弟'],
|
|
'w,{G1},s&l,w':['小舅妇','小舅姆','小舅弟妇','舅弟妇','舅妹','小舅妹','小妗子'],
|
|
'w,{G1},d&o':['大姨子','大姨姐','姨姐'],
|
|
'w,{G1},d&o,h':['大姨夫','大姨姐夫','襟兄','姨兄','大姨哥','大尹子'],
|
|
'w,{G1},d&l':['小姨子','小姨妹','姨妹','姨仔'],
|
|
'w,{G1},d&l,h':['小姨夫','小姨妹夫','襟弟','姨弟','小姨弟','小尹子'],
|
|
'{G0},s':['男','男儿','儿','子'],
|
|
'{G0},s,w':['媳妇','妇'],
|
|
'{G0},s,s':['孙','孙男','孙子'],
|
|
'{G0},s,s,w':['孙妇'],
|
|
'{G0},s,s,s':['曾孙','曾孙男'],
|
|
'{G0},s,s,s,w':['曾孙妇'],
|
|
'{G0},s,s,s,s':['玄孙','玄孙男'],
|
|
'{G0},s,s,s,d':['玄孙女'],
|
|
'{G0},s,s,d':['曾孙女'],
|
|
'{G0},s,s,d,h':['曾孙婿'],
|
|
'{G0},s,s,d,s':['玄外孙','玄外孙男'],
|
|
'{G0},s,s,d,d':['玄外孙女'],
|
|
'{G0},s,d':['孙女'],
|
|
'{G0},s,d,w':['孙婿'],
|
|
'{G0},s,d,s':['曾外孙','曾外孙男'],
|
|
'{G0},s,d,s,w':['曾外孙妇'],
|
|
'{G0},s,d,s,s':['曾外曾孙','曾外曾孙男'],
|
|
'{G0},s,d,s,d':['曾外曾孙女'],
|
|
'{G0},s,d,d':['曾外孙女'],
|
|
'{G0},s,d,d,h':['曾外孙婿'],
|
|
'{G0},s,d,d,s':['曾外曾外孙','曾外曾外孙男'],
|
|
'{G0},s,d,d,d':['曾外曾外孙女'],
|
|
'{G0},d':['女','女儿'],
|
|
'{G0},d,s':['外孙','外孙男'],
|
|
'{G0},d,s,w':['外孙妇'],
|
|
'{G0},d,s,s':['外曾孙','外曾孙男'],
|
|
'{G0},d,s,s,w':['外曾孙妇'],
|
|
'{G0},d,s,s,s':['外玄孙','外玄孙男'],
|
|
'{G0},d,s,s,d':['外玄孙女'],
|
|
'{G0},d,s,d':['外曾孙女'],
|
|
'{G0},d,s,d,h':['外曾孙婿'],
|
|
'{G0},d,s,d,s':['外玄外孙','外玄外孙男'],
|
|
'{G0},d,s,d,d':['外玄外孙女'],
|
|
'{G0},d,d':['外孙女'],
|
|
'{G0},d,d,w':['外孙婿'],
|
|
'{G0},d,d,s':['外曾外孙','外曾外孙男'],
|
|
'{G0},d,d,s,w':['外曾外孙妇'],
|
|
'{G0},d,d,s,s':['外曾外曾孙','外曾外曾孙男'],
|
|
'{G0},d,d,s,d':['外曾外曾孙女'],
|
|
'{G0},d,d,d':['外曾外孙女'],
|
|
'{G0},d,d,d,h':['外曾外孙婿'],
|
|
'{G0},d,d,d,s':['外曾外曾外孙'],
|
|
'{G0},d,d,d,d':['外曾外曾外孙女'],
|
|
'{M1W},f':['外祖父'],
|
|
'{M1W},m':['外祖母'],
|
|
'{M1W},xb':['舅父'],
|
|
'{M1W},xb,w':['舅母'],
|
|
'{M1W},xb,s&o':['舅表哥'],
|
|
'{M1W},xb,s&o,w':['舅表嫂'],
|
|
'{M1W},xb,s&l':['舅表弟'],
|
|
'{M1W},xb,s&l,w':['舅表弟妇'],
|
|
'{M1W},xb,s,s':['侄男'],
|
|
'{M1W},xb,s,s,w':['侄妇'],
|
|
'{M1W},xb,s,d':['侄女'],
|
|
'{M1W},xb,s,d,h':['侄婿'],
|
|
'{M1W},xb,d&o':['舅表姐'],
|
|
'{M1W},xb,d&o,h':['舅表姐夫'],
|
|
'{M1W},xb,d&l':['舅表妹'],
|
|
'{M1W},xb,d&l,h':['舅表妹夫'],
|
|
'{M1W},xb,d,s':['甥男'],
|
|
'{M1W},xb,d,s,w':['甥妇'],
|
|
'{M1W},xb,d,d':['甥女'],
|
|
'{M1W},xb,d,d,h':['甥婿'],
|
|
'{M1W},xs':['姨母'],
|
|
'{M1W},xs,h':['姨父'],
|
|
'{M1W},xs,s&o':['姨表哥'],
|
|
'{M1W},xs,s&o,w':['姨表嫂'],
|
|
'{M1W},xs,s&l':['姨表弟'],
|
|
'{M1W},xs,s&l,w':['姨表弟妇'],
|
|
'{M1W},xs,d&o':['姨表姐'],
|
|
'{M1W},xs,d&o,h':['姨表姐夫'],
|
|
'{M1W},xs,d&l':['姨表妹'],
|
|
'{M1W},xs,d&l,h':['姨表妹夫'],
|
|
'{M1M},f':['祖父'],
|
|
'{M1M},m':['祖母'],
|
|
'{M1M},ob':['伯父'],
|
|
'{M1M},ob,w':['伯母'],
|
|
'{M1M},lb':['叔父'],
|
|
'{M1M},lb,w':['叔母'],
|
|
'{M1M},xb,s&o':['叔表哥'],
|
|
'{M1M},xb,s&o,w':['叔表嫂'],
|
|
'{M1M},xb,s&l':['叔表弟'],
|
|
'{M1M},xb,s&l,w':['叔表弟妇'],
|
|
'{M1M},xb,s,s':['侄男','侄子','侄儿'],
|
|
'{M1M},xb,s,s,w':['侄妇'],
|
|
'{M1M},xb,s,d':['侄女'],
|
|
'{M1M},xb,s,d,h':['侄婿'],
|
|
'{M1M},xb,d&o':['叔表姐'],
|
|
'{M1M},xb,d&o,h':['叔表姐夫'],
|
|
'{M1M},xb,d&l':['叔表妹'],
|
|
'{M1M},xb,d&l,h':['叔表妹夫'],
|
|
'{M1M},xb,d,s':['甥男'],
|
|
'{M1M},xb,d,s,w':['甥妇'],
|
|
'{M1M},xb,d,d':['甥女'],
|
|
'{M1M},xb,d,d,h':['甥婿'],
|
|
'{M1M},xs':['姑母'],
|
|
'{M1M},xs,h':['姑父'],
|
|
'{M1M},xs,s&o':['姑表哥'],
|
|
'{M1M},xs,s&o,w':['姑表嫂'],
|
|
'{M1M},xs,s&l':['姑表弟'],
|
|
'{M1M},xs,s&l,w':['姑表弟妇'],
|
|
'{M1M},xs,d&o':['姑表姐'],
|
|
'{M1M},xs,d&o,h':['姑表姐夫'],
|
|
'{M1M},xs,d&l':['姑表妹'],
|
|
'{M1M},xs,d&l,h':['姑表妹夫'],
|
|
'{M0},f':['父'],
|
|
'{M0},f,f':['祖父'],
|
|
'{M0},f,f,ob':['伯祖父'],
|
|
'{M0},f,f,ob,w':['伯祖母'],
|
|
'{M0},f,f,lb':['叔祖父'],
|
|
'{M0},f,f,lb,w':['叔祖母'],
|
|
'{M0},f,f,xs':['姑祖母'],
|
|
'{M0},f,f,xs,h':['姑祖父'],
|
|
'{M0},f,m':['祖母'],
|
|
'{M0},f,m,xb':['舅祖父'],
|
|
'{M0},f,m,xb,w':['舅祖母'],
|
|
'{M0},f,m,xs':['姨祖母'],
|
|
'{M0},f,m,xs,h':['姨祖父'],
|
|
'{M0},f,ob':['伯父'],
|
|
'{M0},f,ob,w':['伯母'],
|
|
'{M0},f,lb':['叔父'],
|
|
'{M0},f,lb,w':['叔母'],
|
|
'{M0},f,xb,s&o':['叔表兄'],
|
|
'{M0},f,xb,s&o,w':['叔表兄妇'],
|
|
'{M0},f,xb,s&l':['叔表弟'],
|
|
'{M0},f,xb,s&l,w':['叔表弟妇'],
|
|
'{M0},f,xb,d&o':['叔表姊'],
|
|
'{M0},f,xb,d&o,h':['叔表姊婿'],
|
|
'{M0},f,xb,d&l':['叔表妹'],
|
|
'{M0},f,xb,d&l,h':['叔表妹婿'],
|
|
'{M0},f,xs':['姑母'],
|
|
'{M0},f,xs,h':['姑父'],
|
|
'{M0},f,xs,s&o':['姑表兄'],
|
|
'{M0},f,xs,s&o,w':['姑表兄妇'],
|
|
'{M0},f,xs,s&l':['姑表弟'],
|
|
'{M0},f,xs,s&l,w':['姑表弟妇'],
|
|
'{M0},f,xs,d&o':['姑表姊'],
|
|
'{M0},f,xs,d&o,h':['姑表姊婿'],
|
|
'{M0},f,xs,d&l':['姑表妹'],
|
|
'{M0},f,xs,d&l,h':['姑表妹婿'],
|
|
'{M0},m':['母'],
|
|
'{M0},m,f':['外祖父'],
|
|
'{M0},m,f,ob':['伯外祖父'],
|
|
'{M0},m,f,ob,w':['伯外祖母'],
|
|
'{M0},m,f,lb':['叔外祖父'],
|
|
'{M0},m,f,lb,w':['叔外祖母'],
|
|
'{M0},m,f,xs':['姑外祖母'],
|
|
'{M0},m,f,xs,h':['姑外祖父'],
|
|
'{M0},m,m':['外祖母'],
|
|
'{M0},m,m,xb':['舅外祖父'],
|
|
'{M0},m,m,xb,w':['舅外祖母'],
|
|
'{M0},m,m,xs':['姨外祖母'],
|
|
'{M0},m,m,xs,h':['姨外祖父'],
|
|
'{M0},m,xb':['舅父'],
|
|
'{M0},m,xb,w':['舅母'],
|
|
'{M0},m,xb,s&o':['舅表兄'],
|
|
'{M0},m,xb,s&o,w':['舅表兄妇'],
|
|
'{M0},m,xb,s&l':['舅表弟'],
|
|
'{M0},m,xb,s&l,w':['舅表弟妇'],
|
|
'{M0},m,xb,d&o':['舅表姊'],
|
|
'{M0},m,xb,d&o,h':['舅表姊婿'],
|
|
'{M0},m,xb,d&l':['舅表妹'],
|
|
'{M0},m,xb,d&l,h':['舅表妹婿'],
|
|
'{M0},m,xs':['姨母'],
|
|
'{M0},m,xs,h':['姨父'],
|
|
'{M0},m,xs,s&o':['姨表兄'],
|
|
'{M0},m,xs,s&o,w':['姨表兄妇'],
|
|
'{M0},m,xs,s&l':['姨表弟'],
|
|
'{M0},m,xs,s&l,w':['姨表弟妇'],
|
|
'{M0},m,xs,d&o':['姨表姊'],
|
|
'{M0},m,xs,d&o,h':['姨表姊婿'],
|
|
'{M0},m,xs,d&l':['姨表妹'],
|
|
'{M0},m,xs,d&l,h':['姨表妹婿'],
|
|
'{M0},ob':['兄'],
|
|
'{M0},ob,w':['兄妇'],
|
|
'{M0},lb':['弟'],
|
|
'{M0},lb,w':['弟妇'],
|
|
'{M0},xb,s':['侄男','侄子','侄儿'],
|
|
'{M0},xb,s,w':['侄妇'],
|
|
'{M0},xb,d':['侄女'],
|
|
'{M0},xb,d,h':['侄婿'],
|
|
'{M0},os':['姊'],
|
|
'{M0},os,h':['姊婿'],
|
|
'{M0},ls':['妹'],
|
|
'{M0},ls,h':['妹婿'],
|
|
'{M0},xs,s':['甥男'],
|
|
'{M0},xs,s,w':['甥妇'],
|
|
'{M0},xs,d':['甥女'],
|
|
'{M0},xs,d,h':['甥婿'],
|
|
'{M-1},f&o':['兄'],
|
|
'{M-1},f&l':['弟'],
|
|
'{M-1},f,f':['父'],
|
|
'{M-1},f,f,f':['祖父'],
|
|
'{M-1},f,f,m':['祖母'],
|
|
'{M-1},f,f,ob':['伯父'],
|
|
'{M-1},f,f,ob,w':['伯母'],
|
|
'{M-1},f,f,lb':['叔父'],
|
|
'{M-1},f,f,lb,w':['叔母'],
|
|
'{M-1},f,m':['母'],
|
|
'{M-1},f,m,f':['外祖父'],
|
|
'{M-1},f,m,m':['外祖母'],
|
|
'{M-1},f,ob':['叔兄'],
|
|
'{M-1},f,ob,w':['叔兄妇'],
|
|
'{M-1},f,lb':['叔弟'],
|
|
'{M-1},f,lb,w':['叔弟妇'],
|
|
'{M-1},f,xb,s':['叔男'],
|
|
'{M-1},f,xb,d':['叔女'],
|
|
'{M-1},f,os':['姑姊'],
|
|
'{M-1},f,os,h':['姑姊婿'],
|
|
'{M-1},f,ls':['姑妹'],
|
|
'{M-1},f,ls,h':['姑妹婿'],
|
|
'{M-1},f,xs,s':['姑男'],
|
|
'{M-1},f,xs,d':['姑女'],
|
|
'{M-1},m&o':['姊'],
|
|
'{M-1},m&l':['妹'],
|
|
'{M-1},m,f':['父'],
|
|
'{M-1},m,f,f':['祖父'],
|
|
'{M-1},m,f,m':['祖母'],
|
|
'{M-1},m,m':['母'],
|
|
'{M-1},m,m,f':['外祖父'],
|
|
'{M-1},m,m,m':['外祖母'],
|
|
'{M-1},m,ob':['舅兄'],
|
|
'{M-1},m,ob,w':['舅兄妇'],
|
|
'{M-1},m,lb':['舅弟'],
|
|
'{M-1},m,lb,w':['舅弟妇'],
|
|
'{M-1},m,xb,s':['舅男'],
|
|
'{M-1},m,xb,d':['舅女'],
|
|
'{M-1},m,os':['姨姊'],
|
|
'{M-1},m,os,h':['姨姊婿'],
|
|
'{M-1},m,ls':['姨妹'],
|
|
'{M-1},m,ls,h':['姨妹婿'],
|
|
'{M-1},m,xs,s':['姨男'],
|
|
'{M-1},m,xs,d':['姨女'],
|
|
'{M-1},xb':['男'],
|
|
'{M-1},xb,w':['妇'],
|
|
'{M-1},xb,s':['孙男'],
|
|
'{M-1},xb,s,w':['孙妇'],
|
|
'{M-1},xb,d':['孙女'],
|
|
'{M-1},xb,d,h':['孙婿'],
|
|
'{M-1},xs':['女'],
|
|
'{M-1},xs,h':['婿'],
|
|
'{M-1},xs,s':['外孙男'],
|
|
'{M-1},xs,s,w':['外孙妇'],
|
|
'{M-1},xs,d':['外孙女'],
|
|
'{M-1},xs,d,h':['外孙婿'],
|
|
'{M-2},f':['男'],
|
|
'{M-2},f,f&o':['兄'],
|
|
'{M-2},f,f&l':['弟'],
|
|
'{M-2},f,m&o':['姊'],
|
|
'{M-2},f,m&l':['妹'],
|
|
'{M-2},m':['女'],
|
|
'{M-2},m,f&o':['兄'],
|
|
'{M-2},m,f&l':['弟'],
|
|
'{M-2},m,m&o':['姊'],
|
|
'{M-2},m,m&l':['妹'],
|
|
'{M-2},xb':['孙男'],
|
|
'{M-2},xb,w':['孙妇'],
|
|
'{M-2},xs':['孙女'],
|
|
'{M-2},xs,h':['孙婿'],
|
|
}
|
|
|
|
// 数据
|
|
var _map = {}; // 默认数据
|
|
var _mode = {}; // 模式数据
|
|
var _data = {}; // 最终数据
|
|
|
|
// 数组去重
|
|
function unique(arr){
|
|
var sameList = arr.filter(item=>item==item.replace(/[ol](?=s|b)/,'x').replace(/&[ol]/,''));
|
|
return arr.filter(item=>{
|
|
var temp = item.replace(/[ol](?=s|b)/,'x').replace(/&[ol]/,'');
|
|
return sameList.indexOf(item)>-1||item!=temp&&sameList.indexOf(temp)==-1;
|
|
}).filter((item,idx,arr) => arr.indexOf(item) === idx);
|
|
}
|
|
|
|
// 中文获取选择器
|
|
function getSelectors(str){
|
|
str = str.replace(/之/,'的').replace(/我的?(.+)/,'$1');
|
|
if(str.match(/[^娘婆岳亲]家的?/)){
|
|
str = str.replace(/家的?/,'的');
|
|
}
|
|
var lists = str.split('的');
|
|
var result = [];
|
|
var isMatch = true;
|
|
// 双向替换
|
|
var replaceMap = {
|
|
'哥':'兄',
|
|
'姐':'姊',
|
|
'侄':'姪',
|
|
'祖父':'王父',
|
|
'祖母':'王母',
|
|
'孙女婿':'孙婿',
|
|
'甥女婿':'甥婿',
|
|
'侄女婿':'侄婿',
|
|
'弟媳':'弟妇',
|
|
'孙媳妇':'孙妇',
|
|
'甥媳妇':'甥妇',
|
|
'侄媳妇':'侄妇',
|
|
};
|
|
// 含义扩展
|
|
var replaceFilter = {
|
|
'^从表':['从父姑表','从父舅表','从父姨表','从母姑表','从母舅表','从母叔表'],
|
|
'^表表':['姑表叔表','姑表姑表','姑表舅表','姑表姨表','舅表叔表','舅表姑表','舅表舅表','舅表姨表'],
|
|
'^表':['姑表','舅表','姑表伯','姑表叔','舅表伯','舅表叔'],
|
|
'^姑表(?=[^伯叔])':['姑表伯','姑表叔'],
|
|
'^舅表(?=[^伯叔])':['舅表伯','舅表叔'],
|
|
'^姻':['姑姻','姨姻','姊妹姻','女姻'],
|
|
'^眷':['叔眷','舅眷','兄弟眷','男眷'],
|
|
'^亲家':['姊妹姻','兄弟眷'],
|
|
'^曾([伯叔姑舅姨侄甥])':['$1曾'],
|
|
'^玄([侄甥])':['$1玄'],
|
|
'^外表([伯叔姑舅姨])':['姑表$1外','舅表$1外'],
|
|
'^外甥':['甥'],
|
|
'祖$':['祖父','祖母'],
|
|
'孙$':['孙男','孙女'],
|
|
'甥$':['甥男','甥女'],
|
|
'侄$':['侄男','侄女'],
|
|
'外甥$':['甥'],
|
|
'嫂$':['兄妇'],
|
|
};
|
|
while(lists.length){
|
|
var name = lists.shift(); //当前匹配词
|
|
var items = []; //当前匹配词可能性
|
|
var x_items = [];
|
|
var r_items = [];
|
|
var keywords = [name];
|
|
var getList = function(name){
|
|
for(var filter in replaceFilter){
|
|
var word_list = replaceFilter[filter];
|
|
word_list.forEach(function(word){
|
|
var name1 = name.replace(new RegExp(filter),word);
|
|
if(name1!=name){
|
|
keywords.push(name1);
|
|
getList(name1);
|
|
}
|
|
});
|
|
}
|
|
for(var word in replaceMap){
|
|
var name1 = name.replace(word,replaceMap[word]);
|
|
var name2 = name.replace(replaceMap[word],word);
|
|
if(name1!=name){
|
|
keywords.push(name1);
|
|
}
|
|
if(name2!=name){
|
|
keywords.push(name2);
|
|
}
|
|
}
|
|
};
|
|
getList(name);
|
|
// 通过关键词找关系
|
|
keywords.forEach(function(name){
|
|
var x_name = name.replace(/^[大|小|二|三|四|五|六|七|八|九|十]/,'x');
|
|
var r_name = name.replace(/^[大|小|二|三|四|五|六|七|八|九|十]/,'');
|
|
for(var i in _data){
|
|
if(_data[i].indexOf(name)>-1){
|
|
items.push(i);
|
|
}
|
|
if(name!=x_name&&_data[i].indexOf(x_name)>-1){
|
|
x_items.push(i);
|
|
}
|
|
if(name!=r_name&&_data[i].indexOf(r_name)>-1){
|
|
if(!i.match(/^[mf,]+$/)){ // 直系祖辈不参与排序
|
|
r_items.push(i);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
// console.log('[keywords]',keywords);
|
|
// 如找不到结果,再是否存在称呼的排行问题(不直接判断,因存在"大舅""三从父兄""三世祖"这样特俗含义的情况)
|
|
if(!items.length){
|
|
items = x_items;
|
|
}
|
|
if(!items.length){
|
|
items = r_items;
|
|
}
|
|
// 完全匹配不到结果
|
|
if(!items.length){
|
|
isMatch = false;
|
|
}
|
|
var res = [];
|
|
if(!result.length){
|
|
result = [''];
|
|
}
|
|
result.forEach(function(a){
|
|
items.forEach(function(b){
|
|
res.push(a+(b?','+b:''));
|
|
});
|
|
});
|
|
result = res;
|
|
}
|
|
return isMatch?result:[];
|
|
}
|
|
|
|
// 选择器转ID
|
|
function selector2id(selector,sex){
|
|
var result = [];
|
|
var hash = {};
|
|
//性别判断
|
|
if(sex<0){
|
|
if(selector.match(/^,w/)){
|
|
sex = 1;
|
|
}else if(selector.match(/^,h/)){
|
|
sex = 0;
|
|
}
|
|
}else if(sex==1&&selector.match(/^,[h0]/)){
|
|
return false;
|
|
}else if(sex==0&&selector.match(/^,[w1]/)){
|
|
return false;
|
|
}
|
|
// console.log('[selector]',selector);
|
|
var getId = function(selector,sex){
|
|
if(sex>-1&&selector.indexOf(',1')==-1&&selector.indexOf(',0')==-1){
|
|
selector = ','+sex+selector;
|
|
}
|
|
if(selector.match(/,[mwd0](&[ol])?,w|,[hfs1](&[ol])?,h/)){ //同志关系去除
|
|
return false;
|
|
}
|
|
var s='';
|
|
if(!hash[selector]){
|
|
hash[selector] = true;
|
|
do{
|
|
s = selector;
|
|
for(var i in _filter){
|
|
var item = _filter[i];
|
|
// console.log('[filter]',item['exp'],selector);
|
|
selector = selector.replace(item['exp'],item['str']);
|
|
if(selector.indexOf('#')>-1){
|
|
selector.split('#').forEach(getId);
|
|
return false;
|
|
}
|
|
}
|
|
}while(s!=selector);
|
|
if(selector.match(/,[mwd0](&[ol])?,w|,[hfs1](&[ol])?,h/)){ //同志关系去除
|
|
return false;
|
|
}
|
|
selector = selector.replace(/,[01]/,'').substr(1); //去前面逗号和性别信息
|
|
result.push(selector);
|
|
}
|
|
}
|
|
getId(selector,sex);
|
|
return unique(result);
|
|
}
|
|
|
|
// 通过ID获取数据
|
|
function getDataById(id){
|
|
var items = [];
|
|
var getData = function(d){
|
|
var res = [];
|
|
if(_data[d]){
|
|
res.push(_data[d][0]);
|
|
}else{
|
|
for(var i in _data){
|
|
if(i.replace(/&[ol]/g,'')==d){
|
|
res.push(_data[i][0]);
|
|
}else{
|
|
var expr = d;
|
|
while (expr.match(/[ol](b|s)/)){
|
|
expr = expr.replace(/[ol](b|s)/,'x$1');
|
|
if(expr==i){
|
|
res.push(_data[i][0]);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
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](b|s)/g,'x$1');
|
|
items = getData(id);
|
|
}
|
|
// 缩小访问查找
|
|
if(!items.length){
|
|
var l = id.replace(/x/g,'l');
|
|
var o = id.replace(/x/g,'o');
|
|
items = items.concat(getData(o),getData(l));
|
|
}
|
|
}
|
|
return items;
|
|
}
|
|
|
|
// 逆转ID
|
|
function reverseId(id,sex){
|
|
var hash = {
|
|
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']
|
|
};
|
|
var age = '';
|
|
if(id.match(/&o$/)){
|
|
age = '&l';
|
|
}else if(id.match(/&l$/)){
|
|
age = '&o';
|
|
}
|
|
if(id){
|
|
id = id.replace(/&[ol]/g,'');
|
|
//性别判断
|
|
if(sex<0){
|
|
if(id.match(/^w/)){
|
|
sex = 1;
|
|
}else if(id.match(/^h/)){
|
|
sex = 0;
|
|
}
|
|
}
|
|
var result = [];
|
|
var doing = function(sex){
|
|
var sid = (','+sex+','+id).replace(/,[fhs]|,[olx]b/g,',1').replace(/,[mwd]|,[olx]s/g,',0');
|
|
sid = sid.substring(0,sid.lastIndexOf(','));
|
|
var id_arr = id.split(',').reverse();
|
|
var sid_arr = sid.split(',').reverse();
|
|
var arr = id_arr.map((id,i)=>hash[id][sid_arr[i]]);
|
|
var g = 0;
|
|
var gMap = {'f':1,'m':1,'s':-1,'d':-1};
|
|
arr.forEach(function(r){
|
|
g += gMap[r]||0;
|
|
});
|
|
return arr.join(',')+(g?'':age);
|
|
};
|
|
if(sex<0){
|
|
result.push(doing(1));
|
|
result.push(doing(0));
|
|
}else{
|
|
result.push(doing(sex));
|
|
}
|
|
return result;
|
|
}
|
|
return [''];
|
|
}
|
|
|
|
// 通过ID获取关系链条
|
|
function getChainById(id){
|
|
var arr = id.split(',');
|
|
return arr.map(function(sign){
|
|
var key = sign.replace(/&[ol]/,'');
|
|
var data = Object.assign(_data,{
|
|
'xb':['兄弟'],
|
|
'xs':['姐妹'],
|
|
});
|
|
return data[key][0];
|
|
}).join('的');
|
|
}
|
|
|
|
// 合并选择器,查找两个对象之间的关系
|
|
function mergeSelector(from,to,my_sex){
|
|
if(my_sex<0){
|
|
var to_sex = -1;
|
|
var from_sex = -1;
|
|
if(from.match(/^,[w1]/)){
|
|
from_sex = 1;
|
|
}else if(from.match(/^,[h0]/)){
|
|
from_sex = 0;
|
|
}
|
|
if(to.match(/^,[w1]/)){
|
|
to_sex = 1;
|
|
}else if(to.match(/^,[h0]/)){
|
|
to_sex = 0;
|
|
}
|
|
if(from_sex==-1&&to_sex>-1){
|
|
my_sex = to_sex;
|
|
}else if(from_sex>-1&&to_sex==-1){
|
|
my_sex = from_sex;
|
|
}else if(from_sex==to_sex){
|
|
my_sex = from_sex;
|
|
}else{
|
|
return false;
|
|
}
|
|
}
|
|
var sex = my_sex;
|
|
var from_ids = selector2id(from,my_sex);
|
|
var to_ids = selector2id(to,my_sex);
|
|
var from_rids = [];
|
|
var to_rids = [];
|
|
if(!from_ids.length||!to_ids.length){
|
|
return false;
|
|
}
|
|
if(to){
|
|
var toIsMale = false;
|
|
var toIsFemale = false;
|
|
to_ids.forEach(function(id){
|
|
if(id.match(/([fhs1](&[ol])?|[olx]b)$/)){
|
|
toIsMale = true;
|
|
}
|
|
if(id.match(/([mwd0](&[ol])?|[olx]s)$/)){
|
|
toIsFemale = true;
|
|
}
|
|
to_rids = to_rids.concat(reverseId(id,my_sex));
|
|
});
|
|
to_rids = unique(to_rids);
|
|
if(toIsMale&&toIsFemale){
|
|
sex = -1;
|
|
}else if(toIsMale){
|
|
sex = 1;
|
|
}else if(toIsFemale){
|
|
sex = 0;
|
|
}
|
|
}else{
|
|
to_rids = [''];
|
|
}
|
|
// console.log('[from_ids]',from_ids,'to_rids',to_rids);
|
|
var from_selector = from_ids.length>1?'['+from_ids.join('|')+']':from_ids[0];
|
|
var to_selector = to_rids.length>1?'['+to_rids.join('|')+']':to_rids[0];
|
|
return {
|
|
'selector':(to?','+to_selector:'')+(from?','+from_selector:''),
|
|
'sex':sex
|
|
};
|
|
}
|
|
|
|
// 数据初始化
|
|
// 分支关系
|
|
for(var key in _branch){
|
|
var tag = key.match(/\{.+?\}/)[0];
|
|
var nameList = _branch[key];
|
|
for(var k in _prefix[tag]){
|
|
var prefixList = _prefix[tag][k];
|
|
var newKey = key.replace(tag,k);
|
|
var isFilter = false;
|
|
['h,h','w,w','w,h','h,w'].forEach(function(pair){
|
|
if(newKey.indexOf(pair)>-1){
|
|
isFilter = true;
|
|
}
|
|
});
|
|
var newList = [];
|
|
if(!isFilter){
|
|
prefixList.forEach(function(prefix){
|
|
nameList.forEach(function(name){
|
|
if(name.indexOf('?')>-1){
|
|
newList.push(name.replace('?',prefix));
|
|
}else{
|
|
newList.push(prefix+name);
|
|
}
|
|
});
|
|
});
|
|
_map[newKey] = [].concat(_map[newKey]||[],newList);
|
|
}
|
|
}
|
|
}
|
|
// 主要关系
|
|
for(var key in _main){
|
|
_map[key] = [].concat(_main[key],_map[key]||[]);
|
|
}
|
|
// 配偶关系
|
|
var branch = {
|
|
'w':['妻','内','岳','岳家','丈人'],
|
|
'h':['夫','外','婆家'],
|
|
};
|
|
var allName = [];
|
|
for(var key in _map){
|
|
allName = [].concat(allName,_map[key]);
|
|
}
|
|
for(var key in _map){
|
|
if(key.match(/^[fm]/)||key.match(/^[olx][bs]$|^[olx][bs],[^mf]/)){
|
|
for(var k in branch){
|
|
var newKey = k+','+key;
|
|
if(!_map[newKey]){
|
|
_map[newKey] = [];
|
|
}
|
|
var prefixList = branch[k];
|
|
var nameList = _map[key];
|
|
prefixList.forEach(function(prefix){
|
|
nameList.forEach(function(name){
|
|
var newName = prefix+name;
|
|
if(allName.indexOf(newName)==-1){ // 配偶组合的称呼不得已原有称呼冲突(如:妻舅!=妻子的舅舅;外舅公!=老公的舅公)
|
|
_map[newKey].push(newName);
|
|
}
|
|
});
|
|
});
|
|
}
|
|
}
|
|
}
|
|
_data = Object.assign({},_map);
|
|
// 对外方法
|
|
var relationship = function (parameter){
|
|
var options = Object.assign({
|
|
text:'',
|
|
target:'',
|
|
sex:-1,
|
|
type:'default', // 'chain'表示关系链
|
|
reverse:false, // true表示反向
|
|
mode:'default', // 用户自定义模式
|
|
},parameter);
|
|
_data = Object.assign({},_map);
|
|
for(var lang in _mode){
|
|
if(options.mode==lang){
|
|
for(var key in _mode[lang]){
|
|
_data[key] = [].concat(_mode[lang][key],_map[key]||[]);
|
|
}
|
|
}
|
|
}
|
|
var from_selectors = getSelectors(options.text);
|
|
var to_selectors = getSelectors(options.target);
|
|
if(!to_selectors.length){
|
|
to_selectors = [''];
|
|
}
|
|
// console.log('[selectors]',from_selectors,to_selectors);
|
|
var result = []; //匹配结果
|
|
from_selectors.forEach(function(from){
|
|
to_selectors.forEach(function(to){
|
|
var data = mergeSelector(from,to,options.sex);
|
|
// console.log('[data]',from,to,data);
|
|
var ids = data?selector2id(data['selector'],data['sex']):null;
|
|
// console.log('[ids]',data['selector'],data['sex'],ids);
|
|
if(ids){
|
|
ids.forEach(function(id){
|
|
var temps = [id];
|
|
if(options.type=='chain'){
|
|
if(options.reverse){
|
|
temps = reverseId(id,data['sex']);
|
|
}
|
|
temps.forEach(function(id){
|
|
var item = getChainById(id);
|
|
if(item){
|
|
result.push(item);
|
|
}
|
|
});
|
|
}else{
|
|
if(options.reverse){
|
|
temps = reverseId(id,data['sex']);
|
|
}
|
|
temps.forEach(function(id){
|
|
var items = getDataById(id);
|
|
if(!items.length){
|
|
items = getDataById(data['sex']+','+id);
|
|
}
|
|
if(items.length){
|
|
result = result.concat(items);
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
});
|
|
});
|
|
return unique(result);
|
|
};
|
|
// 获取数据表
|
|
relationship.data = _data;
|
|
// 获取数据量
|
|
relationship.dataCount = Object.keys(_data).length;
|
|
// 设置语言模式
|
|
relationship.setMode = function(sign,data){
|
|
_mode[sign] = Object.assign(_mode[sign]||{},data);
|
|
};
|
|
return relationship;
|
|
});
|