updated 调整关系替换顺序,避免数据冗余
This commit is contained in:
parent
06669774b2
commit
0e2e7502ba
80
dist/relationship.js
vendored
80
dist/relationship.js
vendored
@ -24,6 +24,43 @@
|
||||
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,
|
||||
@ -70,43 +107,6 @@
|
||||
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,
|
||||
@ -947,12 +947,12 @@
|
||||
s = selector;
|
||||
for(var i in _filter){
|
||||
var item = _filter[i];
|
||||
selector = selector.replace(item['exp'],item['str']);
|
||||
// console.log('filter#',item['exp'],selector);
|
||||
selector = selector.replace(item['exp'],item['str']);
|
||||
if(selector.indexOf('#')>-1){
|
||||
var arr = selector.split('#');
|
||||
for(var i=0;i<arr.length;i++){
|
||||
getId(arr[i]);
|
||||
for(var j=0;j<arr.length;j++){
|
||||
getId(arr[j]);
|
||||
}
|
||||
status=false;
|
||||
break;
|
||||
|
2
dist/relationship.min.js
vendored
2
dist/relationship.min.js
vendored
File diff suppressed because one or more lines are too long
@ -81,7 +81,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<script src="script/common.js"></script>
|
||||
<script src="dist/relationship.min.js"></script>
|
||||
<script src="script/relationship.js"></script>
|
||||
<script>
|
||||
(function(){
|
||||
var $type = document.getElementsByName('type');
|
||||
|
@ -24,6 +24,43 @@
|
||||
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,
|
||||
@ -70,43 +107,6 @@
|
||||
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,
|
||||
@ -947,12 +947,12 @@
|
||||
s = selector;
|
||||
for(var i in _filter){
|
||||
var item = _filter[i];
|
||||
selector = selector.replace(item['exp'],item['str']);
|
||||
// console.log('filter#',item['exp'],selector);
|
||||
selector = selector.replace(item['exp'],item['str']);
|
||||
if(selector.indexOf('#')>-1){
|
||||
var arr = selector.split('#');
|
||||
for(var i=0;i<arr.length;i++){
|
||||
getId(arr[i]);
|
||||
for(var j=0;j<arr.length;j++){
|
||||
getId(arr[j]);
|
||||
}
|
||||
status=false;
|
||||
break;
|
||||
|
@ -13,6 +13,7 @@ test('relationship.js show to be tested', function (t) {
|
||||
t.deepEqual(relationship({text:'表姐的哥哥',sex:1}),['姑表哥','舅表哥','姨表哥']);
|
||||
t.deepEqual(relationship({text:'表姐的妹妹',sex:1}),['姑表姐','姑表妹','舅表姐','舅表妹','姨表姐','姨表妹']);
|
||||
t.deepEqual(relationship({text:'老公的老婆的儿子的爸爸',sex:0}),['老公']);
|
||||
t.deepEqual(relationship({text:'哥哥的弟弟的爸爸的儿子',sex:1}),['兄弟','自己']);
|
||||
t.deepEqual(relationship({text:'爸爸的舅舅',sex:0,reverse:true}),['外甥孙女']);
|
||||
t.deepEqual(relationship({text:'舅爷爷',type:'chain'}),['爸爸的妈妈的兄弟']);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user