Merge branch 'master' of github.com:mumuy/relationship

# Conflicts:
#	dist/relationship.min.js
#	dist/relationship.zh-HK.min.js
This commit is contained in:
PASSER-BY 2022-11-17 17:42:04 +08:00
commit 25fd5d18ac
6 changed files with 14 additions and 11 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -258,7 +258,7 @@ export default {
'f,ls':['小姑','小姑妈','姑姐','姑妹','姑仔','尕娘','幺姑','幺姑姐','老姑','细姑','满姑'], 'f,ls':['小姑','小姑妈','姑姐','姑妹','姑仔','尕娘','幺姑','幺姑姐','老姑','细姑','满姑'],
'f,ls,h':['小姑丈','小姑父','小姑爹','恩叔'], 'f,ls,h':['小姑丈','小姑父','小姑爹','恩叔'],
'f,xs':['姑妈','姑母','姑姑','恩妈','嬢嬢','娘娘','几姑','姑','阿姑'], 'f,xs':['姑妈','姑母','姑姑','恩妈','嬢嬢','娘娘','几姑','姑','阿姑'],
'f,xs,h':['姑丈','姑父','姑爸','恩爸','姑爹','姑夫','姑婿','亘'], 'f,xs,h':['姑丈','姑父','姑爸','恩爸','姑伯','姑爹','姑夫','姑婿','亘'],
'f,f,xb,s&o':['堂伯'], 'f,f,xb,s&o':['堂伯'],
'f,f,xb,s&o,w':['堂伯母'], 'f,f,xb,s&o,w':['堂伯母'],
'f,f,xb,s&l':['堂叔'], 'f,f,xb,s&l':['堂叔'],
@ -353,7 +353,7 @@ export default {
'h':['老公','丈夫','先生','夫','男人','新郎','爱爷','夫亲','夫君','官人','汉子','老头子','郎君','相公','夫婿','良人','老公仔','爱人','老伴','那口子','配偶','伴侣','伉俪','卿卿'], 'h':['老公','丈夫','先生','夫','男人','新郎','爱爷','夫亲','夫君','官人','汉子','老头子','郎君','相公','夫婿','良人','老公仔','爱人','老伴','那口子','配偶','伴侣','伉俪','卿卿'],
'h,ob':['大伯子','大伯儿','大伯兄','伯子','伯仔','伯兄','阿伯','大伯爷','伯爷子','婿伯'], 'h,ob':['大伯子','大伯儿','大伯兄','伯子','伯仔','伯兄','阿伯','大伯爷','伯爷子','婿伯'],
'h,ob,w':['大婶子','大婶儿','大叔兄妇','伯兄妇','伯嫂','伯妇','伯姆','姒妇','姒姆','大伯嫂','姆姆','大姆','大伯妇','大伯娘','姐妇','阿姆'], 'h,ob,w':['大婶子','大婶儿','大叔兄妇','伯兄妇','伯嫂','伯妇','伯姆','姒妇','姒姆','大伯嫂','姆姆','大姆','大伯妇','大伯娘','姐妇','阿姆'],
'h,lb':['小叔子','小叔儿','小叔弟','叔子','叔仔','叔弟','阿叔'], 'h,lb':['小叔子','小叔儿','小叔弟','叔子','叔仔','叔弟','阿叔','叔郎','小郎'],
'h,lb,w':['小婶子','小婶儿','小叔弟妇','叔弟妇','叔嫂','叔妇','叔姆','娣妇','娣姆','小叔妇','婶婶','小婶','小叔妇','小婶婶'], 'h,lb,w':['小婶子','小婶儿','小叔弟妇','叔弟妇','叔嫂','叔妇','叔姆','娣妇','娣姆','小叔妇','婶婶','小婶','小叔妇','小婶婶'],
'h,[ob|lb]':['伯叔'], 'h,[ob|lb]':['伯叔'],
'h,xb,w':['妯娌','娣姒','娣姒姊妹','婶子'], 'h,xb,w':['妯娌','娣姒','娣姒姊妹','婶子'],
@ -404,7 +404,7 @@ export default {
'w,ls':['小姨子','小姨妹','小茙儿','姨妹','姨仔','姨妹子'], 'w,ls':['小姨子','小姨妹','小茙儿','姨妹','姨仔','姨妹子'],
'w,ls,h':['小姨夫','小姨妹夫','小茙夫','襟弟','小尹子'], 'w,ls,h':['小姨夫','小姨妹夫','小茙夫','襟弟','小尹子'],
'w,xs':['姨子','妻姨'], 'w,xs':['姨子','妻姨'],
'w,xs,h':['连襟','姨夫','连桥','两桥','两乔','姨夫爷','一担挑','老挑','挑担','担儿挑','连襟儿','襟兄弟','妻尹','娅'], 'w,xs,h':['连襟','姨夫','连桥','两桥','两乔','姨夫爷','一担挑','老挑','挑担','担儿挑','连襟儿','襟兄弟','友婿','妻尹','娅'],
'w,xs,s':['姨甥'], 'w,xs,s':['姨甥'],
'w,xs,d':['姨甥女'], 'w,xs,d':['姨甥女'],
// 兄弟姐妹系 // 兄弟姐妹系

View File

@ -121,9 +121,12 @@ export function unique(arr){
// 中文获取选择器 // 中文获取选择器
export function getSelectors(str){ export function getSelectors(str){
str = str.replace(/之/g,'的').replace(/吾之?(.+)/,'$1').replace(/我的?(.+)/,'$1'); str = str.replace(/之/g,'的').replace(/吾之?(.+)/,'$1').replace(/我的?(.+)/,'$1');
if(str.match(/[^娘婆岳亲]家的?/)){ // 惯用口语标准化
str = str.replace(/家的?/,'的'); str = str.replace(/(?<=[^娘婆岳亲])家的?(?=(孩子|儿子|女儿))/,'的'); // 反向否定预查 /(?<![娘婆岳亲])家的/ 兼容写法
} str = str.replace(/(舅|姑)+(爸|父|丈|妈|母)?家的?(哥|姐|弟|妹)+/,'$1表$3').replace(/(舅|姑)+(爸|父|丈|妈|母)?家的?/,'$1表');
str = str.replace(/(伯|叔)+(父|母)?家的?(哥|姐|弟|妹)+/,'堂$3').replace(/(伯|叔)+(父|母)?家的?/,'堂');
str = str.replace(/姨+(爸|父|丈|妈|母)?家的?(哥|姐|弟|妹)+/,'姨$2').replace(/姨+(爸|父|丈|妈|母)?家的?/,'姨');
var lists = str.split('的'); var lists = str.split('的');
var result = []; var result = [];
var isMatch = true; var isMatch = true;
@ -158,7 +161,7 @@ export function getSelectors(str){
'^([曾高天烈太远鼻]?)祖?王姑':['姑$1祖母'], '^([曾高天烈太远鼻]?)祖?王姑':['姑$1祖母'],
'^([曾玄来晜仍云耳])([侄甥])':['$2$1'], '^([曾玄来晜仍云耳])([侄甥])':['$2$1'],
'^外表([伯叔姑舅姨])':['姑表$1外','舅表$1外'], '^外表([伯叔姑舅姨])':['姑表$1外','舅表$1外'],
'^([堂表姨]?)外甥':['$1甥'], '([堂表姨]?)外甥':['$1甥'],
'^([舅叔])([曾玄外]*)孙':['$1侄$2孙'], '^([舅叔])([曾玄外]*)孙':['$1侄$2孙'],
'^([姨姑])([曾玄外]*)孙':['$1甥$2孙'], '^([姨姑])([曾玄外]*)孙':['$1甥$2孙'],
'([孙甥侄])$':['$1男','$1女'], '([孙甥侄])$':['$1男','$1女'],

View File

@ -19,7 +19,7 @@ var prefix = {
'f,xb':['堂','同堂','亲堂','从父','叔伯','从'], 'f,xb':['堂','同堂','亲堂','从父','叔伯','从'],
'f,xs':['姑表','姑家'], 'f,xs':['姑表','姑家'],
'm,xb':['舅表','舅家'], 'm,xb':['舅表','舅家'],
'm,xs':['姨','从母','姨家','两姨','姨表','从'], 'm,xs':['姨','从母','两姨','姨表','从'],
'f,f,xb,s':['从堂','再从父','远堂','堂叔伯','叔伯叔伯','再从'], 'f,f,xb,s':['从堂','再从父','远堂','堂叔伯','叔伯叔伯','再从'],
'f,f,xb,d':['堂姑表','从父姑表'], 'f,f,xb,d':['堂姑表','从父姑表'],
'f,f,xs,s':['姑表叔表'], 'f,f,xs,s':['姑表叔表'],

View File

@ -3,7 +3,7 @@ var test = require('tape');
var relationship = require('..'); var relationship = require('..');
test('relationship.js show to be tested', function (t) { test('relationship.js show to be tested', function (t) {
// console.log('[test]',relationship('妈妈应该如何称呼姑姑')); // console.log('[test]',relationship({text:'舅舅家哥哥的老婆'}));
t.deepEqual(relationship({text:'儿子的爸爸的妈妈',sex:1}),['妈妈']); t.deepEqual(relationship({text:'儿子的爸爸的妈妈',sex:1}),['妈妈']);
t.deepEqual(relationship({text:'爱人',sex:1}),['老婆']); t.deepEqual(relationship({text:'爱人',sex:1}),['老婆']);