diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..3f875d7
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+.project
+.settings
+
+node_modules/*
+
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..9fe9df5
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,16 @@
+language: node_js
+
+node_js:
+ - "6.2.0"
+ - "5.6.0"
+ - "4.4.4"
+
+install:
+ - npm install
+
+script:
+ - npm run build
+
+branches:
+ only:
+ - gh-pages
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..7396634
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2016 Haole Zheng
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/app.html b/app.html
new file mode 100644
index 0000000..afe7761
--- /dev/null
+++ b/app.html
@@ -0,0 +1,31 @@
+
+
+
+
+ 三姑六婆计算器
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dist/relationship.js b/dist/relationship.js
new file mode 100644
index 0000000..79ecfdb
--- /dev/null
+++ b/dist/relationship.js
@@ -0,0 +1,1138 @@
+/**
+* BY: haole zheng
+* http://passer-by.com
+*/
+!function (root, factory) {
+ if (typeof module === 'object' && module.exports){
+ module.exports = factory();
+ }else{
+ root.relationship = factory();
+ }
+}(typeof window !== 'undefined' ? window : this,function (){
+ //简写
+ var _filter = [
+ /* 表亲 */
+ {//表亲的关系
+ exp:/^(.+)&o([^#]+)&l/g,
+ str:'$1$2'
+ },
+ {//表亲的关系
+ exp:/^(.+)&l([^#]+)&o/g,
+ str:'$1$2'
+ },
+ {//表亲的关系
+ 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'
+ }
+ ];
+
+ //关系数据
+ //语法说明:
+ //【关系】f:父,m:母,h:夫,w:妻,s:子,d:女,xb:兄弟,ob:兄,lb:弟,xs:姐妹,os:姐,ls:妹
+ //【修饰符】 1:男性,0:女性,&o:年长,&l:年幼,#:隔断,[a|b]:并列
+ var _data = {
+ '':['自己','我'],
+ //并称
+ '[f|m]':['父母','爹娘','爹妈','爸妈','双亲','二老','高堂'],
+ '[h,f|h,m]':['公婆'],
+ '[xb|xs]':['兄弟姐妹'],
+ '[s|d]':['子女','儿女','小孩','孩子'],
+ //本家
+ 'f':['爸爸','父亲','阿爸','老爸','老窦','爹','爹爹','爹地','爹啲','老爹','大大','老爷子','老头子'],
+ 'f,f':['爷爷','祖父','阿爷','奶爷','阿公'],
+ 'f,f,f':['曾祖父','太爷','太爷爷','太公','祖公','祖奶爷'],
+ 'f,f,f,f':['高祖父','老太爷','祖太爷','祖太爷爷','祖太公'],
+ 'f,f,f,f,f':['天祖父'],
+ 'f,f,f,f,f,f':['烈祖父'],
+ 'f,f,f,f,f,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,f,f,f,f,m':['远祖母'],
+ 'f,f,f,f,f,f,f,f,f':['鼻祖父'],
+ 'f,f,f,f,f,f,f,f,m':['鼻祖母'],
+ 'f,f,f,f,m':['天祖母'],
+ '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,m,xb':['舅高祖父'],
+ 'f,f,f,m,xb,w':['舅高祖母'],
+ '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,xs,s&l':['表叔祖父'],
+ 'f,f,f,xs,s&l,w':['表叔祖母'],
+ 'f,f,f,xs,d':['表姑祖母','族祖姑'],
+ 'f,f,f,xs,d,h':['表姑祖父'],
+ 'f,f,m':['曾祖母','太奶奶','太婆','祖婆','祖奶奶'],
+ 'f,f,m,f':['高外祖父','祖太姥爷','祖太公'],
+ 'f,f,m,m':['高外祖母','祖太姥姥','祖太姥娘','祖太婆'],
+ 'f,f,m,xb':['舅曾祖父','太舅公','太舅爷','舅太爷','舅太爷爷'],
+ 'f,f,m,xb,w':['舅曾祖母','太舅婆','舅太太','舅太奶奶'],
+ 'f,f,m,xb,s&o':['表伯祖父'],
+ 'f,f,m,xb,s&o,w':['表伯祖母'],
+ 'f,f,m,xb,s&l':['表叔祖父'],
+ 'f,f,m,xb,s&l,w':['表叔祖母'],
+ 'f,f,m,xb,d':['表姑祖母'],
+ 'f,f,m,xb,d,h':['表姑祖父'],
+ 'f,f,m,xs':['姨曾祖母','太姨奶','姨太太','曾姨奶奶','姨太奶奶'],
+ 'f,f,m,xs,h':['姨曾祖父','太姨爷','姨太爷','姨太爷爷'],
+ 'f,f,m,xs,s&o':['表伯祖父'],
+ 'f,f,m,xs,s&o,w':['表伯祖母'],
+ 'f,f,m,xs,s&l':['表叔祖父'],
+ 'f,f,m,xs,s&l,w':['表叔祖母'],
+ 'f,f,m,xs,d':['表姑祖母'],
+ 'f,f,m,xs,d,h':['表姑祖父'],
+ 'f,f,xb':['堂祖父','x爷爷'],
+ 'f,f,xb,w':['堂祖母'],
+ 'f,f,xb,s&o':['堂伯','堂伯父','从父伯父'],
+ 'f,f,xb,s&o,w':['堂伯母','从父伯母'],
+ 'f,f,xb,s&l':['堂叔','从父叔父'],
+ 'f,f,xb,s,w':['堂婶','堂叔母','堂婶母','从父叔母'],
+ 'f,f,xb,s,s&o':['从兄','再从兄','从兄弟'],
+ 'f,f,xb,s,s&o,w':['从嫂','再从嫂'],
+ 'f,f,xb,s,s&l':['从弟','再从弟','从兄弟'],
+ 'f,f,xb,s,s&l,w':['从弟妹','再从弟妹','再从兄'],
+ 'f,f,xb,s,s,s':['从侄','再从侄','从侄子'],
+ 'f,f,xb,s,s,s,w':['从侄媳妇','再从侄妇'],
+ 'f,f,xb,s,s,s,s':['从侄孙'],
+ 'f,f,xb,s,s,s,d':['从侄孙女'],
+ 'f,f,xb,s,s,d':['从侄女','再从侄女'],
+ 'f,f,xb,s,s,d,h':['从侄女婿','再从侄女婿','姻家侄婿'],
+ 'f,f,xb,s,d&o':['从姐','再从姐','从姐妹'],
+ 'f,f,xb,s,d&o,h':['从姐夫','再从姐夫'],
+ 'f,f,xb,s,d&l':['从妹','再从妹','从姐妹'],
+ 'f,f,xb,s,d&l,h':['从妹夫','再妹夫'],
+ 'f,f,xb,d':['堂姑','堂姑妈','堂姑母','从父姑母'],
+ 'f,f,xb,d,h':['堂姑丈','堂姑爸','堂姑父','从父姑父'],
+ 'f,f,xb,d,s&o':['堂姑表兄'],
+ 'f,f,xb,d,s&l':['堂姑表弟'],
+ 'f,f,xb,d,d&o':['堂姑表姐'],
+ 'f,f,xb,d,d&l':['堂姑表妹'],
+ 'f,f,ob':['伯祖父','伯老爷','伯公','大爷爷','大爷','堂祖父','伯爷爷'],
+ 'f,f,ob,w':['伯祖母','伯奶奶','伯婆','大奶奶','堂祖母','姆婆'],
+ 'f,f,lb':['叔祖父','叔老爷','叔公','小爷爷','堂祖父','叔爷爷','叔奶爷'],
+ 'f,f,lb,w':['叔祖母','叔奶奶','叔婆','小奶奶','堂祖母','婶婆'],
+ 'f,f,xs':['姑奶奶','姑内祖母','祖姑母','姑祖母','姑婆','祖姑'],
+ 'f,f,xs,h':['姑爷爷','姑内祖父','祖姑父','姑祖父','姑老爷','姑公','姑奶爷','姑丈公'],
+ 'f,f,xs,s&o':['姑表伯父','表伯父','表伯'],
+ 'f,f,xs,s&o,w':['姑表伯母','表伯母'],
+ 'f,f,xs,s&l':['姑表叔父','表叔父','表叔爸','表叔'],
+ 'f,f,xs,s&l,w':['姑表叔母','表叔母','表叔妈','表婶'],
+ 'f,f,xs,s,s':['从表兄弟'],
+ 'f,f,xs,s,d':['从表姐妹'],
+ 'f,f,xs,d':['姑表姑母','表姑妈','表姑母','表姑姑','表姑'],
+ 'f,f,xs,d,h':['姑表姑父','表姑爸','表姑父','表姑丈'],
+ 'f,f,xs,d,s':['从表兄弟'],
+ 'f,f,xs,d,d':['从表姐妹'],
+ 'f,m':['奶奶','祖母','阿嫲','阿嬷','嫲嫲'],
+ 'f,m,f':['曾外祖父','外太公','太姥爷'],
+ 'f,m,f,f':['曾外曾祖父','祖太爷','祖太爷爷','祖太公'],
+ 'f,m,f,m':['曾外曾祖母','祖太太','祖太奶奶','祖太婆'],
+ 'f,m,f,xb,s':['堂舅祖父'],
+ 'f,m,f,xb,s,w':['堂舅祖母'],
+ 'f,m,f,xb,d':['堂姨祖母'],
+ 'f,m,f,xb,d,h':['堂姨祖父'],
+ '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,f,xs,s':['表舅祖父'],
+ 'f,m,f,xs,s,w':['表舅祖母'],
+ 'f,m,m':['曾外祖母','外太婆','太姥姥'],
+ 'f,m,m,f':['曾外曾外祖父','祖太姥爷','祖太公'],
+ 'f,m,m,m':['曾外曾外祖母','祖太姥姥','祖太姥娘','祖太婆'],
+ 'f,m,m,xb':['舅曾外祖父','舅太姥爷','舅太奶爷'],
+ 'f,m,m,xb,w':['舅曾外祖母','舅太姥姥','舅太奶奶'],
+ 'f,m,m,xb,s':['表舅祖父'],
+ 'f,m,m,xb,s,w':['表舅祖母'],
+ 'f,m,m,xb,d':['表姨祖母'],
+ 'f,m,m,xb,d,h':['表姨祖父'],
+ 'f,m,m,xs':['姨曾外祖母','姨太姥姥','姨太奶奶'],
+ 'f,m,m,xs,h':['姨曾外祖父','姨太姥爷','姨太奶爷'],
+ 'f,m,m,xs,d':['表姨祖母'],
+ 'f,m,m,xs,d,h':['表姨祖父'],
+ 'f,m,m,xs,s':['表舅祖父'],
+ 'f,m,m,xs,s,w':['表舅祖母'],
+ 'f,m,m,xs,d':['表姨祖母'],
+ 'f,m,m,xs,d,h':['表姨祖父'],
+ 'f,m,xb':['舅公','舅祖父','舅老爷','舅爷爷','舅爷','舅祖','舅奶爷','太舅父'],
+ 'f,m,xb,w':['舅婆','舅祖母','舅奶奶','妗婆','太舅母'],
+ 'f,m,xb,s&o':['舅表伯父','表伯父','表伯'],
+ 'f,m,xb,s&o,w':['舅表伯母','表伯母'],
+ 'f,m,xb,s&l':['舅表叔父','表叔父','表叔爸','表叔'],
+ 'f,m,xb,s&l,w':['舅表叔母','表叔母','表叔妈','表婶'],
+ 'f,m,xb,s,s':['从表兄弟'],
+ 'f,m,xb,s,d':['从表姐妹'],
+ 'f,m,xb,d':['舅表姑母','表姑妈','表姑母','表姑姑','表姑'],
+ 'f,m,xb,d,h':['舅表姑父','表姑爸','表姑父','表姑丈'],
+ 'f,m,xb,d,s':['从表兄弟'],
+ 'f,m,xb,d,d':['从表姐妹'],
+ 'f,m,xs':['姨奶奶','祖姨母','姨祖母','姨婆','姨奶'],
+ 'f,m,xs,h':['姨爷爷','祖姨父','姨祖父','姨公','姨丈公','姨爷','姨老爷','姨奶爷'],
+ 'f,m,xs,s&o':['姨表伯父','表伯','表伯父','从母伯父'],
+ 'f,m,xs,s&o,w':['姨表伯母','表伯母','从母伯母'],
+ 'f,m,xs,s&l':['姨表叔父','表叔父','表叔爸','表叔','从母叔父'],
+ 'f,m,xs,s&l,w':['姨表叔母','表叔母','表叔妈','表婶','从母叔母'],
+ 'f,m,xs,s,s':['从表兄弟'],
+ 'f,m,xs,s,d':['从表姐妹'],
+ 'f,m,xs,d':['姨表姑母','表姑妈','表姑母','表姑姑','表姑','从母姑母'],
+ 'f,m,xs,d,h':['姨表姑父','表姑爸','表姑父','表姑丈','从母姑父'],
+ 'f,m,xs,d,s':['从表兄弟'],
+ 'f,m,xs,d,d':['从表姐妹'],
+ 'f,xb,w,f':['姻伯公'],
+ 'f,xb,w,m':['姻伯婆'],
+ 'f,xb,w,xb':['姻世伯'],
+ 'f,xb,w,xb,w':['姻伯母'],
+ 'f,xb,w,xs':['姻伯母'],
+ 'f,xb,w,xs,h':['姻世伯'],
+ 'f,xb,s&o':['堂哥','堂兄','堂阿哥','叔伯兄弟'],
+ 'f,xb,s&o,w':['堂嫂'],
+ 'f,xb,s&l':['堂弟','堂阿弟','叔伯兄弟'],
+ 'f,xb,s&l,w':['堂弟媳','堂弟妹'],
+ 'f,xb,s,s':['堂侄','堂侄子','叔伯侄子'],
+ 'f,xb,s,s,w':['堂侄媳妇'],
+ 'f,xb,s,s,s':['堂侄孙'],
+ 'f,xb,s,s,s,w':['堂侄孙媳妇'],
+ 'f,xb,s,s,d':['堂侄孙女'],
+ 'f,xb,s,s,d,h':['堂侄孙女婿'],
+ 'f,xb,s,d':['堂侄女'],
+ 'f,xb,s,d,h':['堂侄女婿','姻家侄'],
+ 'f,xb,d&o':['堂姐','堂阿姐','叔伯姐妹'],
+ 'f,xb,d&o,h':['堂姐夫'],
+ 'f,xb,d&l':['堂妹','堂阿妹','叔伯姐妹'],
+ 'f,xb,d&l,h':['堂妹夫'],
+ 'f,xb,d,s':['堂外甥'],
+ 'f,xb,d,d':['堂外甥女'],
+ 'f,ob':['伯父','伯伯','阿伯','大伯','x伯'],
+ 'f,ob,w':['伯母','大娘','大妈','x妈'],
+ 'f,lb':['叔叔','叔父','阿叔','叔爸','叔爹','仲父','x叔','叔'],
+ 'f,lb,w':['婶婶','婶母','阿婶','家婶','叔母','叔妈','叔娘','季母','x婶','婶'],
+ //姑家
+ 'f,xs':['姑妈','姑姑','姑娘','大姑妈','x姑妈','姑'],
+ 'f,xs,h':['姑丈','姑父','姑爸','姑夫'],
+ 'f,xs,h,f':['姻伯公'],
+ 'f,xs,h,m':['姻伯婆'],
+ 'f,xs,h,xb':['姻世伯'],
+ 'f,xs,h,xb,w':['姻伯母'],
+ 'f,xs,h,xs':['姻伯母'],
+ 'f,xs,h,xs,h':['姻世伯'],
+ 'f,xs,s&o':['姑表哥','表哥'],
+ 'f,xs,s&o,w':['姑表嫂','表嫂'],
+ 'f,xs,s&l':['姑表弟','表弟'],
+ 'f,xs,s&l,w':['姑表弟媳','表弟媳','表弟妹'],
+ 'f,xs,s,s':['表侄','表侄子','姑表侄男','表侄男'],
+ 'f,xs,s,s,s':['表侄孙'],
+ 'f,xs,s,s,s,w':['表侄孙媳妇'],
+ 'f,xs,s,s,d':['表侄孙女'],
+ 'f,xs,s,s,d,h':['表侄孙女婿'],
+ 'f,xs,s,d':['表侄女','姑表侄女'],
+ 'f,xs,s,d,s':['外表侄孙'],
+ 'f,xs,s,d,s,w':['外表侄孙媳妇'],
+ 'f,xs,s,d,d':['外表侄孙女'],
+ 'f,xs,s,d,d,h':['外表侄孙女婿'],
+ 'f,xs,d&o':['姑表姐','表姐'],
+ 'f,xs,d&o,h':['姑表姐夫','表姐夫','表姐丈'],
+ 'f,xs,d&l':['姑表妹','表妹'],
+ 'f,xs,d&l,h':['姑表妹夫','表妹夫'],
+ 'f,xs,d,s':['表外甥','姑表甥男','表甥男'],
+ 'f,xs,d,d':['表外甥女','姑表甥女','表甥女'],
+ 'f,os':['姑妈','姑母'],
+ 'f,ls':['姑妈','姑姐'],
+ //外家
+ 'm':['妈妈','母亲','老妈','阿妈','老母','老妈子','娘','娘亲','妈咪'],
+ 'm,f':['外公','外祖父','姥爷'],
+ 'm,f,f':['外曾祖父','外太祖父','外太公','外太爷爷','太外祖父'],
+ 'm,f,f,f':['外高祖父','祖太爷','祖太爷爷','祖太公'],
+ 'm,f,f,m':['外高祖母','祖太太','祖太奶奶','祖太婆'],
+ 'm,f,f,xb,s&o':['堂伯外祖父'],
+ 'm,f,f,xb,s&o,w':['堂伯外祖母'],
+ 'm,f,f,xb,s&l':['堂叔外祖父'],
+ 'm,f,f,xb,s&l,w':['堂叔外祖母'],
+ 'm,f,f,xb,d':['堂姑外祖母'],
+ 'm,f,f,xb,d,h':['堂姑外祖父'],
+ 'm,f,f,ob':['伯外曾祖父','外太伯公','伯太姥爷','伯太奶爷','伯太爷爷'],
+ 'm,f,f,ob,w':['伯外曾祖母','外太伯母','伯太姥姥','伯太奶奶'],
+ 'm,f,f,lb':['叔外曾祖父','外太叔公','叔太姥爷','叔太奶爷','叔太爷爷'],
+ 'm,f,f,lb,w':['叔外曾祖母','外太叔母','叔太姥姥','叔太奶奶'],
+ 'm,f,f,xs':['姑外曾祖母','外太姑婆','姑太姥姥','姑太奶奶'],
+ 'm,f,f,xs,h':['姑外曾祖父','外太姑丈公','姑太姥爷','姑太奶爷','姑太爷爷'],
+ 'm,f,f,xs,s&o':['表伯外祖父','外表伯祖父'],
+ 'm,f,f,xs,s&o,w':['表伯外祖母','外表伯祖母'],
+ 'm,f,f,xs,s&l':['表叔外祖父','外表叔祖父'],
+ 'm,f,f,xs,s&l,w':['表叔外祖母','外表叔祖母'],
+ 'm,f,f,xs,d':['表姑外祖母'],
+ 'm,f,f,xs,d,h':['表姑外祖父'],
+ 'm,f,m':['外曾祖母','外太祖母','太外祖母','外太奶奶','外太婆'],
+ 'm,f,m,f':['外高外祖父','祖太姥爷','祖太公'],
+ 'm,f,m,m':['外高外祖母','祖太姥姥','祖太姥娘','祖太婆'],
+ 'm,f,m,xb':['舅外曾祖父','外太舅公','舅太姥爷','舅太奶爷'],
+ 'm,f,m,xb,w':['舅外曾祖母','外太舅母','舅太姥姥','舅太奶奶','外太舅婆'],
+ 'm,f,m,xb,s&o':['表伯外祖父','外表伯祖父'],
+ 'm,f,m,xb,s&o,w':['表伯外祖母','外表伯祖母'],
+ 'm,f,m,xb,s&l':['表叔外祖父','外表叔祖父'],
+ 'm,f,m,xb,s&l,w':['表叔外祖母','外表叔祖母'],
+ 'm,f,m,xb,d':['表姑外祖母'],
+ 'm,f,m,xb,d,h':['表姑外祖父'],
+ 'm,f,m,xs':['姨外曾祖母','外太姨婆','姨太姥姥','姨太奶奶'],
+ 'm,f,m,xs,h':['姨外曾祖父','外太姑姨公','姨太姥爷','姨太奶爷','姨太爷爷'],
+ 'm,f,m,xs,s&o':['表伯外祖父','外表伯祖父'],
+ 'm,f,m,xs,s&o,w':['表伯外祖母','外表伯祖母'],
+ 'm,f,m,xs,s&l':['表叔外祖父','外表叔祖父'],
+ 'm,f,m,xs,s&l,w':['表叔外祖母','外表叔祖母'],
+ 'm,f,m,xs,d':['表姑外祖母'],
+ 'm,f,m,xs,d,h':['表姑外祖父'],
+ 'm,f,xb':['大姥爷/小姥爷','x姥爷'],
+ 'm,f,xb,s':['堂舅','堂舅爸','堂舅父','堂舅舅','从父舅父'],
+ 'm,f,xb,s,w':['堂舅妈','堂舅母','从父舅母'],
+ 'm,f,xb,s,s&o':['堂舅表兄'],
+ 'm,f,xb,s,s&l':['堂舅表弟'],
+ 'm,f,xb,s,d&o':['堂舅表姐'],
+ 'm,f,xb,s,d&l':['堂舅表妹'],
+ 'm,f,xb,d':['堂姨','堂姨妈','堂姨母','从父姨母'],
+ 'm,f,xb,d,h':['堂姨丈','堂姨爸','堂姨父','从父姨父'],
+ 'm,f,xb,d,s&o':['堂姨表兄'],
+ 'm,f,xb,d,s&l':['堂姨表弟'],
+ 'm,f,xb,d,d&o':['堂姨表姐'],
+ 'm,f,xb,d,d&l':['堂姨表妹'],
+ 'm,f,ob':['伯外祖父','外伯祖父','伯姥爷','大姥爷','外伯祖','伯公'],
+ 'm,f,ob,w':['伯外祖母','外伯祖母','伯姥姥','大姥姥','外姆婆','伯婆'],
+ 'm,f,lb':['叔外祖父','外叔祖父','叔姥爷','叔公','小姥爷','外叔祖','叔外祖','叔爷爷'],
+ 'm,f,lb,w':['叔外祖母','外叔祖母','叔姥姥','叔婆','小姥姥','外姆婆'],
+ 'm,f,xs':['姑姥姥','姑外祖母','外姑祖母','外太姑母','姑婆'],
+ 'm,f,xs,h':['姑姥爷','姑外祖父','外姑祖父','外太姑父','姑公'],
+ 'm,f,xs,s':['姑表舅父','姑表舅爸','表舅父','表舅爸','表舅','表舅舅','姑表舅舅'],
+ 'm,f,xs,s,w':['姑表舅母','姑表舅妈','表舅母','表舅妈'],
+ 'm,f,xs,s,s':['从表兄弟'],
+ 'm,f,xs,s,d':['从表姐妹'],
+ 'm,f,xs,d':['姑表姨母','姑表姨妈','表姨母','表姨妈','表姨','表阿姨','姑表姨姨'],
+ 'm,f,xs,d,h':['姑表姨父','姑表姨父','表姨丈','表姨父'],
+ 'm,f,xs,d,s':['从表兄弟'],
+ 'm,f,xs,d,d':['从表姐妹'],
+ 'm,m':['外婆','外祖母','姥姥','阿婆'],
+ 'm,m,f':['外曾外祖父','外太外公','外太姥爷'],
+ 'm,m,f,f':['外曾外曾祖父','祖太爷','祖太爷爷','祖太公'],
+ 'm,m,f,m':['外曾外曾祖母','祖太太','祖太奶奶','祖太婆'],
+ 'm,m,f,xb,s':['堂舅外祖父'],
+ 'm,m,f,xb,s,w':['堂舅外祖母'],
+ 'm,m,f,xb,d':['堂姨外祖母'],
+ 'm,m,f,xb,d,h':['堂姨外祖父'],
+ 'm,m,f,ob':['伯外曾外祖父','伯太姥爷'],
+ 'm,m,f,ob,w':['伯外曾外祖母','伯太姥姥'],
+ 'm,m,f,lb':['叔外曾外祖父','叔太姥爷'],
+ 'm,m,f,lb,w':['叔外曾外祖母','叔太姥姥'],
+ 'm,m,f,xs':['姑外曾外祖母','姑太姥姥'],
+ 'm,m,f,xs,h':['姑外曾外祖父','姑太姥爷'],
+ 'm,m,f,xs,s':['表舅外祖父'],
+ 'm,m,f,xs,s,w':['表舅外祖母'],
+ 'm,m,f,xs,d':['表姨外祖母'],
+ 'm,m,f,xs,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,d':['表姨外祖母'],
+ 'm,m,m,xb,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,d':['表姨外祖母'],
+ 'm,m,m,xs,d,h':['表姨外祖父'],
+ 'm,m,xb':['外舅公','外舅祖父','外太舅父','舅外祖父','舅姥爷','舅外公','舅公','x舅姥爷'],
+ 'm,m,xb,w':['外舅婆','外舅祖母','外太舅母','舅外祖母','舅姥姥','舅婆'],
+ 'm,m,xb,s':['舅表舅父','舅表舅爸','表舅父','表舅爸','表舅','表舅舅','舅表舅舅'],
+ 'm,m,xb,s,w':['舅表舅母','舅表舅妈','表舅母','表舅妈'],
+ 'm,m,xb,s,s':['从表兄弟'],
+ 'm,m,xb,s,d':['从表姐妹'],
+ 'm,m,xb,d':['舅表姨母','舅表姨妈','表姨母','表姨妈','表姨','表阿姨','舅表姨姨'],
+ 'm,m,xb,d,h':['舅表姨父','舅表姨丈','表姨父','表姨丈'],
+ 'm,m,xb,d,s':['从表兄弟'],
+ 'm,m,xb,d,d':['从表姐妹'],
+ 'm,m,xs':['姨姥姥','姨外祖母','外姨婆','外姨祖母','姨婆','姨姥'],
+ 'm,m,xs,h':['姨姥爷','姨外祖父','外姨丈公','外姨祖父','姨公'],
+ 'm,m,xs,s':['姨表舅父','姨表舅爸','表舅父','表舅爸','表舅','表舅舅','姨表舅舅','从母舅父'],
+ 'm,m,xs,s,w':['姨表舅母','姨表舅妈','表舅母','表舅妈','从母舅母'],
+ 'm,m,xs,s,s':['从表兄弟'],
+ 'm,m,xs,s,d':['从表姐妹'],
+ 'm,m,xs,d':['姨表姨母','姨表姨妈','表姨母','表姨妈','表姨','表阿姨','姨表姨姨','从母姨母'],
+ 'm,m,xs,d,h':['姨表姨父','姨表姨丈','表姨父','表姨丈','从母姨父'],
+ 'm,m,xs,d,s':['从表兄弟'],
+ 'm,m,xs,d,d':['从表姐妹'],
+ //舅家
+ 'm,xb':['舅舅','舅父','舅','娘舅','舅仔','母舅','舅爸','舅爹','阿舅','x舅'],
+ 'm,xb,w':['舅妈','舅母','妗子','妗妗','妗母','阿妗','x舅妈'],
+ 'm,xb,w,f':['姻伯公'],
+ 'm,xb,w,m':['姻伯婆'],
+ 'm,xb,w,xb':['姻世伯'],
+ 'm,xb,w,xb,w':['姻伯母'],
+ 'm,xb,w,xs':['姻伯母'],
+ 'm,xb,w,xs,h':['姻世伯'],
+ 'm,xb,s&o':['舅表哥','表哥'],
+ 'm,xb,s&o,w':['舅表嫂','表嫂'],
+ 'm,xb,s&l':['舅表弟',,'表弟'],
+ 'm,xb,s&l,w':['舅表弟媳','表弟媳','表弟妹'],
+ 'm,xb,s,s':['表侄','表侄子','舅表侄男','表侄男'],
+ 'm,xb,s,s,s':['表侄孙'],
+ 'm,xb,s,s,s,w':['表侄孙媳妇'],
+ 'm,xb,s,s,d':['表侄孙女'],
+ 'm,xb,s,s,d,h':['表侄孙女婿'],
+ 'm,xb,s,d':['表侄女','舅表侄女'],
+ 'm,xb,s,d,s':['外表侄孙'],
+ 'm,xb,s,d,s,w':['外表侄孙媳妇'],
+ 'm,xb,s,d,d':['外表侄孙女'],
+ 'm,xb,s,d,d,h':['外表侄孙女婿'],
+ 'm,xb,d&o':['舅表姐','表姐'],
+ 'm,xb,d&o,h':['舅表姐夫','表姐夫','表姐丈'],
+ 'm,xb,d&l':['舅表妹','表妹'],
+ 'm,xb,d&l,h':['舅表妹夫','表妹夫'],
+ 'm,xb,d,s':['表外甥','舅表甥男','表甥男'],
+ 'm,xb,d,d':['表外甥女','舅表甥女','表甥女'],
+ 'm,ob':['大舅'],
+ 'm,ob,w':['大舅妈'],
+ 'm,lb':['小舅','舅父仔'],
+ 'm,lb,w':['小舅妈'],
+ //姨家
+ 'm,xs':['姨妈','姨母','姨姨','姨娘','阿姨','姨','x姨','x姨妈'],
+ 'm,xs,h':['姨丈','姨父','姨爸','姨爹','x姨父'],
+ 'm,xs,h,f':['姻伯公'],
+ 'm,xs,h,m':['姻伯婆'],
+ 'm,xs,h,xb':['姻世伯'],
+ 'm,xs,h,xb,w':['姻伯母'],
+ 'm,xs,h,xs':['姻伯母'],
+ 'm,xs,h,xs,h':['姻世伯'],
+ 'm,xs,s&o':['姨表哥','表哥'],
+ 'm,xs,s&o,w':['姨表嫂','表嫂'],
+ 'm,xs,s&l':['姨表弟','表弟'],
+ 'm,xs,s&l,w':['姨表弟媳','表弟媳','表弟妹'],
+ 'm,xs,s,s':['表侄','表侄子','姨表侄男','表侄男'],
+ 'm,xs,s,s,s':['表侄孙'],
+ 'm,xs,s,s,s,w':['表侄孙媳妇'],
+ 'm,xs,s,s,d':['表侄孙女'],
+ 'm,xs,s,s,d,h':['表侄孙女婿'],
+ 'm,xs,s,d':['表侄女','姨表侄女'],
+ 'm,xs,s,d,s':['外表侄孙'],
+ 'm,xs,s,d,s,w':['外表侄孙媳妇'],
+ 'm,xs,s,d,d':['外表侄孙女'],
+ 'm,xs,s,d,d,h':['外表侄孙女婿'],
+ 'm,xs,d&o':['姨表姐','表姐'],
+ 'm,xs,d&o,h':['姨表姐夫','表姐夫','表姐丈'],
+ 'm,xs,d&l':['姨表妹','表妹'],
+ 'm,xs,d&l,h':['姨表妹夫','表妹夫'],
+ 'm,xs,d,s':['表外甥','姨表甥男','姨表甥男'],
+ 'm,xs,d,d':['表外甥女','姨表甥女','表甥女'],
+ 'm,os':['大姨','大姨妈'],
+ 'm,os,h':['大姨父','大姨丈'],
+ 'm,ls':['小姨','小姨妈','姨仔'],
+ 'm,ls,h':['小姨父','小姨丈'],
+ //婆家
+ 'h':['老公','丈夫','先生','官人','男人','汉子','夫','夫君','相公','夫婿','爱人','老伴'],
+ 'h,f':['公公','翁亲','老公公'],
+ 'h,f,f':['祖翁'],
+ 'h,f,f,ob':['伯祖翁'],
+ 'h,f,f,ob,w':['伯祖婆'],
+ 'h,f,f,lb':['叔祖翁'],
+ 'h,f,f,lb,w':['叔祖婆'],
+ 'h,f,f,f':['太公翁'],
+ '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,m':['太奶亲'],
+ 'h,f,m':['祖婆'],
+ 'h,f,ob':['伯翁'],
+ 'h,f,ob,w':['伯婆'],
+ 'h,f,lb':['叔公','叔翁','叔祖'],
+ 'h,f,lb,w':['叔婆','婶婆','婶亲'],
+ 'h,f,xb,s&o':['堂大伯','堂兄','堂大伯哥'],
+ 'h,f,xb,s&o,w':['堂嫂','堂大伯嫂'],
+ 'h,f,xb,s&l':['堂叔仔','堂弟','堂小叔弟'],
+ 'h,f,xb,s&l,w':['堂小弟','堂弟妇','堂小叔弟妇'],
+ 'h,f,xb,s,s':['堂夫侄男'],
+ 'h,f,xb,s,d':['堂夫侄女'],
+ 'h,f,xb,d&o':['堂大姑姐'],
+ 'h,f,xb,d&o,h':['堂大姑姐夫'],
+ 'h,f,xb,d&l':['堂小姑妹'],
+ 'h,f,xb,d&l,h':['堂小姑妹夫'],
+ 'h,f,xb,d,s':['堂夫甥男'],
+ 'h,f,xb,d,d':['堂夫甥女'],
+ 'h,f,xs':['姑婆'],
+ 'h,f,xs,h':['姑公'],
+ 'h,f,xs,s&o':['姑表大伯子','表大伯'],
+ 'h,f,xs,s&o,w':['姑表大伯嫂','表大姆'],
+ 'h,f,xs,s&l':['姑表小叔弟','表叔仔'],
+ 'h,f,xs,s&l,w':['姑表小叔弟妇'],
+ 'h,f,xs,s,s':['姑表夫侄男'],
+ 'h,f,xs,s,d':['姑表夫侄女'],
+ 'h,f,xs,d&o':['姑表大姑姐','表大姑'],
+ 'h,f,xs,d&o,h':['姑表大姑姐夫'],
+ 'h,f,xs,d&l':['姑表小姑妹','表姑仔'],
+ 'h,f,xs,d&l,h':['姑表小姑妹夫'],
+ 'h,f,xs,d,s':['姑表夫甥男'],
+ 'h,f,xs,d,d':['姑表夫甥女'],
+ 'h,m':['婆婆','婆母','姑亲','老婆婆'],
+ 'h,m,xb':['舅公'],
+ 'h,m,xb,w':['舅婆'],
+ 'h,m,xb,s&o':['舅表大伯子','表大伯'],
+ 'h,m,xb,s&o,w':['舅表大伯嫂','表大姆'],
+ 'h,m,xb,s&l':['舅表小叔弟','表叔仔'],
+ 'h,m,xb,s&l,w':['舅表小叔弟妇'],
+ 'h,m,xb,s,s':['舅表夫侄男'],
+ 'h,m,xb,s,d':['舅表夫侄女'],
+ 'h,m,xb,d&o':['舅表大姑姐','表大姑'],
+ 'h,m,xb,d&o,h':['舅表大姑姐夫'],
+ 'h,m,xb,d&l':['舅表小姑妹','表姑仔'],
+ 'h,m,xb,d&l,h':['舅表小姑妹夫'],
+ 'h,m,xb,d,s':['舅表夫甥男'],
+ 'h,m,xb,d,d':['舅表夫甥女'],
+ 'h,m,xs':['姨婆'],
+ 'h,m,xs,h':['姨公'],
+ 'h,m,xs,s&o':['姨表大伯子','表大伯'],
+ 'h,m,xs,s&o,w':['姨表大伯嫂','表大姆'],
+ 'h,m,xs,s&l':['姨表小叔弟','表叔仔'],
+ 'h,m,xs,s&l,w':['姨表小叔弟妇'],
+ 'h,m,xs,s,s':['姨表夫侄男'],
+ 'h,m,xs,s,d':['姨表夫侄女'],
+ 'h,m,xs,d&o':['姨表大姑姐','表大姑'],
+ 'h,m,xs,d&o,h':['姨表大姑姐夫'],
+ 'h,m,xs,d&l':['姨表小姑妹','表姑仔'],
+ 'h,m,xs,d&l,h':['姨表小姑妹夫'],
+ 'h,m,xs,d,s':['姨表夫甥男'],
+ 'h,m,xs,d,d':['姨表夫甥女'],
+ 'h,ob':['大伯子','大伯哥','大伯兄','夫兄'],
+ 'h,ob,w':['大婶子','大伯嫂','大伯妇','伯娘','大伯娘','大嫂','夫兄嫂','妯娌'],
+ 'h,lb':['小叔子','小叔弟'],
+ 'h,lb,w':['小婶子','小叔妇','小叔媳妇','小叔弟妇','妯娌'],
+ 'h,xb,s':['叔侄','婆家侄'],
+ 'h,os':['大姑子','大姑','大娘姑','大姑姊'],
+ 'h,os,h':['大姑夫','姊丈','大姑姐夫','大姑姊夫'],
+ 'h,ls':['小姑子','小姑','小姑妹','姑仔'],
+ 'h,ls,h':['小姑夫','小亘子','小姑妹夫'],
+ 'h,xs,s':['姑甥','婆家甥'],
+ //岳家
+ 'w':['老婆','妻子','太太','媳妇儿','媳妇','夫人','女人','婆娘','妻','内人','娘子','爱人','老伴'],
+ 'w,f':['岳父','岳丈','老丈人','丈人','泰山','妻父'],
+ 'w,f,f':['太岳父','祖岳父'],
+ 'w,f,f,f,xb,s,s&o':['姻伯丈'],
+ 'w,f,f,f,xb,s,s&o,w':['姻伯丈'],
+ 'w,f,f,f,xb,s,s&l':['姻叔丈'],
+ 'w,f,f,f,xb,s,s&l,w':['姻婶'],
+ 'w,f,f,ob':['太伯岳'],
+ 'w,f,f,ob,w':['太伯岳母'],
+ 'w,f,f,lb,':['太叔岳'],
+ 'w,f,f,lb,w':['太叔岳母'],
+ 'w,f,f,xb,s&o':['姻伯'],
+ 'w,f,f,xb,s&o,w':['姻姆'],
+ 'w,f,f,xb,s&l':['姻叔'],
+ 'w,f,f,xb,s&l,w':['姻婶'],
+ 'w,f,f,xs':['太姑岳母'],
+ 'w,f,f,xs,h':['太姑岳父'],
+ 'w,f,m':['太岳母','祖岳母'],
+ 'w,f,m,xb':['太舅岳父'],
+ 'w,f,m,xb,w':['太舅岳母'],
+ 'w,f,m,xs':['太姨岳母'],
+ 'w,f,m,xs,h':['太姨岳父'],
+ 'w,f,xb,s&o':['堂大舅','姻家兄'],
+ 'w,f,xb,s&l':['堂舅仔','姻家弟'],
+ 'w,f,xb,d&o':['堂大姨'],
+ 'w,f,xb,d&l':['堂姨仔'],
+ 'w,f,ob':['伯岳','伯岳父'],
+ 'w,f,ob,w':['伯岳母'],
+ 'w,f,lb':['叔岳','叔岳父'],
+ 'w,f,lb,w':['叔岳母'],
+ 'w,f,xs':['姑岳母'],
+ 'w,f,xs,h':['姑岳父'],
+ 'w,f,xs,s&o':['表大舅','表内兄'],
+ 'w,f,xs,s&o,w':['表内嫂'],
+ 'w,f,xs,s&l':['表舅仔','表内弟'],
+ 'w,f,xs,s&l,w':['表内弟妇'],
+ 'w,f,xs,d&o':['表大姨','表内姐'],
+ 'w,f,xs,d&o,h':['表襟兄'],
+ 'w,f,xs,d&l':['表姨仔','表内妹'],
+ 'w,f,xs,d&l,w':['表襟弟'],
+ 'w,m':['岳母','丈母娘','丈母','泰水'],
+ 'w,m,f':['外太岳父'],
+ 'w,m,m':['外太岳母'],
+ 'w,m,xb':['舅岳父'],
+ 'w,m,xb,w':['舅岳母'],
+ 'w,m,xb,s&o':['表大舅'],
+ 'w,m,xb,s&l':['表舅仔'],
+ 'w,m,xb,d&o':['表大姨'],
+ 'w,m,xb,d&l':['表姨仔'],
+ 'w,m,xs':['姨岳母'],
+ 'w,m,xs,h':['姨岳父'],
+ 'w,m,xs,s&o':['表大舅'],
+ 'w,m,xs,s&l':['表舅仔'],
+ 'w,m,xs,d&o':['表大姨'],
+ 'w,m,xs,d&l':['表姨仔'],
+ 'w,xb,s':['内侄','妻侄','舅侄'],
+ 'w,xb,s,w':['内侄媳妇'],
+ 'w,xb,s,s':['内侄孙'],
+ 'w,xb,s,s,w':['内侄孙媳妇'],
+ 'w,xb,s,d':['内侄孙女'],
+ 'w,xb,s,d,h':['内侄孙女婿'],
+ 'w,xb,d':['内侄女','妻侄女'],
+ 'w,xb,d,h':['内侄女婿'],
+ 'w,xb,d,s':['外侄孙'],
+ 'w,xb,d,s,w':['外侄孙媳妇'],
+ 'w,xb,d,d':['外侄孙女'],
+ 'w,xb,d,d,h':['外侄孙女婿'],
+ 'w,ob':['大舅子','大舅哥','大舅兄','内兄','妻兄','妻舅','舅兄'],
+ 'w,ob,w':['舅嫂','大舅妇','大舅嫂','大舅媳妇','大妗子','内嫂','妻兄嫂'],
+ 'w,lb':['小舅子','小舅弟','内弟','妻弟','妻舅','舅弟'],
+ 'w,lb,w':['舅弟媳','小舅妇','小舅弟妇','小舅媳妇','小妗子','妻妹夫'],
+ 'w,xs,s':['内甥','姨甥','妻外甥'],
+ 'w,xs,s,w':['姨甥媳妇'],
+ 'w,xs,s,s':['姨甥孙'],
+ 'w,xs,s,s,w':['姨甥孙媳妇'],
+ 'w,xs,s,d':['姨甥孙女'],
+ 'w,xs,s,d,h':['姨甥孙女婿'],
+ 'w,xs,d':['姨甥女','妻外甥女'],
+ 'w,xs,d,h':['姨甥女婿'],
+ 'w,xs,d,s':['姨甥孙'],
+ 'w,xs,d,s,w':['姨甥孙媳妇'],
+ 'w,xs,d,d':['姨甥孙女'],
+ 'w,xs,d,d,h':['姨甥孙女婿'],
+ 'w,os':['大姨子','大姨姐','大姨姊','妻姐'],
+ 'w,os,h':['大姨夫','大姨姐夫','大姨姊夫','襟兄','连襟','姨夫'],
+ 'w,ls':['小姨子','小姨姐','妻妹','小妹儿'],
+ 'w,ls,h':['小姨夫','小姨妹夫','襟弟','连襟','姨夫'],
+ //旁支
+ 'xb':['兄弟'],
+ 'xb,w,f':['姻世伯','亲家爷','亲爹','亲伯'],
+ 'xb,w,f,f':['姻伯祖/姻叔祖'],
+ 'xb,w,m':['姻伯母','亲家娘','亲娘'],
+ 'xb,w,xb':['姻兄/姻弟'],
+ 'xb,w,xs':['姻姐/姻妹'],
+ 'xb,s':['侄子','侄儿','阿侄'],
+ 'xb,s,w':['侄媳','侄媳妇'],
+ 'xb,s,s':['侄孙','侄孙子'],
+ 'xb,s,s,w':['侄孙媳'],
+ 'xb,s,s,s':['侄曾孙'],
+ 'xb,s,s,s,w':['侄曾孙媳'],
+ 'xb,s,s,d':['侄曾孙女'],
+ 'xb,s,s,d,h':['侄曾孙女婿'],
+ 'xb,s,d':['侄孙女'],
+ 'xb,s,d,h':['侄孙女婿','侄孙婿'],
+ 'xb,d':['侄女','侄囡'],
+ 'xb,d,h':['侄女婿','侄婿'],
+ 'xb,d,s':['外侄孙','外侄孙子','侄外孙男'],
+ 'xb,d,s,w':['外侄孙媳妇'],
+ 'xb,d,d':['外侄孙女','侄外孙女'],
+ 'xb,d,d,h':['外侄孙女婿'],
+ 'ob':['哥哥','哥','兄','阿哥','大佬','老哥','兄长','胞哥','大哥','x哥'],
+ 'ob,w':['嫂子','嫂','嫂嫂','阿嫂','兄嫂','大嫂','x嫂'],
+ 'ob,w,f':['姻伯父'],
+ 'ob,w,m':['姻伯母'],
+ 'lb':['弟弟','弟','细佬','胞弟','老弟','x弟'],
+ 'lb,w':['弟妹','弟媳','弟媳妇','弟妇','x弟妹'],
+ 'lb,w,f':['姻叔父'],
+ 'lb,w,m':['姻叔母'],
+ 'xs':['姐妹','姊妹'],
+ 'xs,h,f':['姻世伯','亲家爷','亲爹','亲伯'],
+ 'xs,h,f,f':['姻伯祖/姻叔祖'],
+ 'xs,h,m':['姻伯母','亲家娘','亲娘'],
+ 'xs,h,xb':['姻兄/姻弟'],
+ 'xs,h,xs':['姻姐/姻妹'],
+ 'xs,s':['外甥','甥男','甥儿','甥子','外甥儿','外甥子','外甥儿子'],
+ 'xs,s,w':['外甥媳妇'],
+ 'xs,s,s':['外甥孙','甥孙男','甥孙'],
+ 'xs,s,s,w':['外甥孙媳妇'],
+ 'xs,s,s,s':['外曾甥孙'],
+ 'xs,s,s,d':['外曾甥孙女'],
+ 'xs,s,d':['外甥孙女','甥孙女','甥孙'],
+ 'xs,s,d,h':['外甥孙女婿'],
+ 'xs,s,d,s':['外曾甥孙'],
+ 'xs,s,d,d':['外曾甥孙女'],
+ 'xs,d':['外甥女','外甥囡'],
+ 'xs,d,h':['外甥女婿'],
+ 'xs,d,s':['外甥孙','甥孙男','甥孙','甥外孙男'],
+ 'xs,d,s,w':['外甥孙媳妇'],
+ 'xs,d,s,s':['外曾甥孙'],
+ 'xs,d,s,d':['外曾甥孙女'],
+ 'xs,d,d':['外甥孙女','甥孙女','甥孙','甥外孙女'],
+ 'xs,d,d,h':['外甥孙女婿'],
+ 'xs,d,d,s':['外曾甥孙'],
+ 'xs,d,d,d':['外曾甥孙女'],
+ 'os':['姐姐','姐','家姐','阿姐','阿姊','胞姐','大姐','x姐'],
+ 'os,h':['姐夫','姊夫','姊丈','姊婿','大姐夫','x姐夫'],
+ 'ls':['妹妹','妹','胞妹','老妹','x妹'],
+ 'ls,h':['妹夫','妹丈','妹婿','x妹夫'],
+ //自家
+ 's':['儿子','仔','阿仔','仔仔'],
+ 's,w':['儿媳妇','儿媳','新妇'],
+ 's,w,xb':['姻侄'],
+ 's,w,xb,s':['姻侄孙'],
+ 's,w,xb,d':['姻侄孙女'],
+ 's,w,xs':['姻侄女'],
+ 's,w,xs,s':['姻侄孙'],
+ 's,w,xs,d':['姻侄孙女'],
+ 's,s':['孙子','孙儿','孙'],
+ 's,s,w':['孙媳妇','孙媳'],
+ 's,s,w,xb':['姻家再侄'],
+ 's,s,w,xs':['姻家再侄'],
+ 's,s,s':['曾孙'],
+ 's,s,s,w':['曾孙媳妇'],
+ 's,s,s,s':['玄孙','元孙','膀孙'],
+ 's,s,s,d':['玄孙女'],
+ 's,s,s,s,s':['来孙'],
+ 's,s,s,s,d':['来孙女'],
+ 's,s,s,s,s,s':['晜孙'],
+ 's,s,s,s,s,d':['晜孙女'],
+ 's,s,s,s,s,s,s':['仍孙'],
+ 's,s,s,s,s,s,d':['仍孙女'],
+ 's,s,s,s,s,s,s,s':['云孙'],
+ 's,s,s,s,s,s,s,d':['云孙女'],
+ 's,s,s,s,s,s,s,s,s':['耳孙'],
+ 's,s,s,s,s,s,s,s,d':['耳孙女'],
+ 's,s,d':['曾孙女'],
+ 's,s,d,h':['曾孙女婿'],
+ 's,s,d,s':['外玄孙'],
+ 's,s,d,d':['外玄孙女'],
+ 's,d':['孙女','孙囡'],
+ 's,d,h':['孙女婿','孙婿'],
+ 's,d,h,xb':['姻家再侄'],
+ 's,d,h,xs':['姻家再侄'],
+ 's,d,s':['曾外孙'],
+ 's,d,d':['曾外孙女'],
+ 'd':['女儿','千金','闺女','女','阿女','女女','掌上明珠','乖囡','囡囡'],
+ 'd,h':['女婿','姑爷','女婿子','女婿儿'],
+ 'd,h,xb':['姻侄'],
+ 'd,h,xb,w':['姻侄妇'],
+ 'd,h,xb,s':['姻侄孙'],
+ 'd,h,xb,d':['姻侄孙女'],
+ 'd,h,xs':['姻侄女'],
+ 'd,h,xs,w':['姻侄女婿'],
+ 'd,h,xs,s':['姻侄孙'],
+ 'd,h,xs,d':['姻侄孙女'],
+ 'd,s':['外孙'],
+ 'd,s,w':['外孙媳'],
+ 'd,s,s':['外曾孙','重外孙'],
+ 'd,s,d':['外曾孙女','重外孙女'],
+ 'd,d':['外孙女','外孙囡'],
+ 'd,d,h':['外孙女婿'],
+ 'd,d,s':['外曾外孙'],
+ 'd,d,d':['外曾外孙女'],
+ //亲家
+ 's,w,m':['亲家母','亲家'],
+ 's,w,f':['亲家公','亲家翁','亲家'],
+ 's,w,f,f':['太姻翁'],
+ 's,w,f,m':['太姻姆'],
+ 's,w,f,ob':['姻兄','姻亲'],
+ 's,w,f,lb':['姻弟','姻亲'],
+ 's,w,f,os':['姻姐','姻亲'],
+ 's,w,f,ls':['姻妹','姻亲'],
+ 'd,h,m':['亲家母','亲家'],
+ 'd,h,f':['亲家公','亲家翁','亲家'],
+ 'd,h,f,f':['太姻翁'],
+ 'd,h,f,m':['太姻姆'],
+ 'd,h,f,ob':['姻兄','姻亲'],
+ 'd,h,f,lb':['姻弟','姻亲'],
+ 's,w,f,os':['姻姐','姻亲'],
+ 's,w,f,ls':['姻妹','姻亲']
+ };
+
+ //数组去重
+ var unique = function(arr) {
+ var result = [], hash = {};
+ var item;
+ for (var i = 0; (item = arr[i]) != null; i++) {
+ var temp = item.replace(/[ol](?=s|b)/,'x').replace(/&[ol]/,''); //对特殊语法标识相互包含的行为去重
+ if (!hash[item]&&!hash[temp]){
+ result.push(item);
+ hash[item] = true;
+ }
+ }
+ return result;
+ };
+
+ //分词解析
+ function getSelectors(str){
+ str = str.replace(/[二|三|四|五|六|七|八|九|十]{1,2}/g,'x');
+ var lists = str.split('的');
+ var result = []; //所有可能性
+ var match = true;
+ while(lists.length){
+ var name = lists.shift(); //当前匹配词
+ var arr = []; //当前匹配词可能性
+ var has = false;
+ for(var i in _data){
+ var value = _data[i];
+ if(value.indexOf(name)>-1){ //是否存在该关系
+ if(i||!lists.length){ //对‘我’的优化
+ arr.push(i);
+ }
+ has = true;
+ }
+ }
+ if(!has){
+ match = false;
+ }
+ if(result.length){ //当前匹配词与之前可能性组合
+ var res = [];
+ for(var i=0;i-1){
+ selector = ','+sex+selector;
+ }
+ if(selector.match(/,[w0],w|,[h1],h/)){ //同志关系去除
+ return false;
+ }
+ var getId = function(selector){
+ var s='';
+ if(!hash[selector]){
+ hash[selector] = true;
+ var status = 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){
+ var arr = selector.split('#');
+ for(var j=0;j-1){
+ age = '&l';
+ }else if(id.indexOf('&l')>-1){
+ age = '&o';
+ }
+ if(id){
+ id = id.replace(/&[ol]/g,'');
+ sex = sex?1:0; //逆转运算自身性别必须确定
+ 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 = [];
+ for(var i=0;i-1&&(!l&&f.length||d.push(l),h=!0)}if(h||(m=!1),x.length){for(var e=[],l=0;l-1&&(s=","+f+s),s.match(/,[w0],w|,[h1],h/))return!1;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("#"),e=0;e-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 (
+ gulp.src('script/relationship.js')
+ .pipe(gulp.dest('dist/'))
+ .pipe(uglify()) //uglify
+ .pipe(rename("relationship.min.js"))
+ .pipe(gulp.dest('dist/'))
+));
\ No newline at end of file
diff --git a/image/1.jpg b/image/1.jpg
new file mode 100644
index 0000000..79505e7
Binary files /dev/null and b/image/1.jpg differ
diff --git a/image/2.jpg b/image/2.jpg
new file mode 100644
index 0000000..3e1507f
Binary files /dev/null and b/image/2.jpg differ
diff --git a/image/icon.png b/image/icon.png
new file mode 100644
index 0000000..2458d7c
Binary files /dev/null and b/image/icon.png differ
diff --git a/image/qrcode.jpg b/image/qrcode.jpg
new file mode 100644
index 0000000..0052764
Binary files /dev/null and b/image/qrcode.jpg differ
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..8433cd3
--- /dev/null
+++ b/index.html
@@ -0,0 +1,171 @@
+
+
+
+
+ 中国家庭称谓计算器
+
+
+
+
+
+
+
+
+
+
中国家庭称谓计算器
+
+
计算类型:
+ 找称呼
+ 找关系
+
+
+
+
+
+
+ 快速选择:
+
+ 父
+ 母
+
+
+ 夫
+ 妻
+
+
+ 子
+ 女
+
+
+ 兄
+ 弟
+
+
+ 姐
+ 妹
+
+
+
+ 回退
+ 清空
+ 计算
+
+
计算结果:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..a5e194e
--- /dev/null
+++ b/package.json
@@ -0,0 +1,42 @@
+{
+ "name": "relationship.js",
+ "officialName": "relationship.js",
+ "version": "1.0.0",
+ "summary": "relationship.js is a javascript library for chinese family relationship. 中国家庭亲戚称谓计算器,家庭关系、亲戚关系算法。",
+ "description": "relationship.js is a javascript library for chinese family relationship.",
+ "author": {
+ "name": "mumuy",
+ "url": "http://passer-by.com/"
+ },
+ "license": "MIT",
+ "keywords": [
+ "relationship",
+ "relationship.js",
+ "chinese",
+ "family",
+ "relationship",
+ "家庭亲戚称谓",
+ "亲戚关系算法"
+ ],
+ "main": "dist/relationship.min.js",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/mumuy/relationship"
+ },
+ "bugs": {
+ "url": "https://github.com/mumuy/relationship/issues"
+ },
+ "devDependencies": {
+ "gulp": "^3.9.0",
+ "gulp-uglify": "^1.5.3",
+ "gulp-rename": "^1.2.2",
+ "tape": "^3.6.1",
+ "pys": "^1.0.2"
+ },
+ "scripts": {
+ "test": "node tests/test.js",
+ "build": "gulp mini && npm run test"
+ },
+ "dependencies": {
+ }
+}
\ No newline at end of file
diff --git a/readme.md b/readme.md
new file mode 100644
index 0000000..abe20d3
--- /dev/null
+++ b/readme.md
@@ -0,0 +1,96 @@
+[](https://travis-ci.org/mumuy/relationship/)
+
+由于工作生活节奏不同,如今很多关系稍疏远的亲戚之间来往并不多。因此放假回家过年时,往往会搞不清楚哪位亲戚应该喊什么称呼,很是尴尬。然而搞不清亲戚关系和亲戚称谓的不仅是小孩,就连年轻一代的大人也都常常模糊混乱。
+
+“中国家庭称谓计算器”为你避免了这种尴尬,只需简单的输入即可算出称谓。输入框兼容了不同的叫法,你可以称呼父亲为:“老爸”、“爹地”、“老爷子”等等,方面不同地域的习惯叫法。快捷输入按键,只需简单的点击即可完成关系输入,算法还支持逆向查找称呼哦~!
+
+
+演示地址:[http://passer-by.com/relationship/](http://passer-by.com/relationship/ )
+
+借助这套算法结合react native开发的APP: [http://passer-by.com/relationship/app.html](http://passer-by.com/relationship/app.html)
+
+在微信中搜索“亲戚关系”,还可以体验小程序版本
+
+
+
+## 一、下载 & 安装
+
+该 Javascript 库 / 模块可以用于前端也可以用于后端 Nodejs 中。
+
+1. 直接下载dist/relationship.min.js,然后使用 `