updated 层次一多就假死的问题修复

This commit is contained in:
郑浩乐 2016-03-21 11:43:52 +08:00
parent 61d869b217
commit 573471f387

View File

@ -106,10 +106,6 @@
str:',$1#,xs$1' str:',$1#,xs$1'
}, },
/* 孩子 */ /* 孩子 */
{//夫妻的孩子就是自己的孩子
exp:/,[wh](,[ds])/g,
str:'$1'
},
{//孩子的姐妹是自己的女儿(年龄判断) {//孩子的姐妹是自己的女儿(年龄判断)
exp:/,[ds]&o,ob/g, exp:/,[ds]&o,ob/g,
str:',s&o', str:',s&o',
@ -135,10 +131,6 @@
str:',s', str:',s',
}, },
/* 夫妻 */ /* 夫妻 */
{//夫妻的对方是自己
exp:/(,w,h)|(,h,w)/g,
str:''
},
{//自己是女性,女儿或儿子的妈妈是自己 {//自己是女性,女儿或儿子的妈妈是自己
exp:/(,[mwd](&[ol])?|([olx]s)),[ds](&[ol])?,m/g, exp:/(,[mwd](&[ol])?|([olx]s)),[ds](&[ol])?,m/g,
str:'$1' str:'$1'
@ -163,6 +155,14 @@
exp:/^,[ds],f(.+)?$/, exp:/^,[ds],f(.+)?$/,
str:'$1#,h$1' str:'$1#,h$1'
}, },
{//夫妻的孩子就是自己的孩子
exp:/,[wh](,[ds])/g,
str:'$1'
},
{//夫妻的对方是自己
exp:/(,w,h)|(,h,w)/g,
str:''
},
]; ];
var _data = { var _data = {
@ -476,32 +476,37 @@
//简化选择器 //简化选择器
function selector2id(selector){ function selector2id(selector){
var result = []; var result = [];
var hash = {};
var getId = function(selector){ var getId = function(selector){
var s; var s='';
// console.log('in#',selector); if(!hash[selector]){
do{ hash[selector] = true;
s = selector; var status = true;
for(var i in _filter){ do{
var item = _filter[i]; s = selector;
if(item['con']){ for(var i in _filter){
if(selector.match(item['con'])){ var item = _filter[i];
if(item['con']){
if(selector.match(item['con'])){
selector = selector.replace(item['exp'],item['str']);
}
}else{
selector = selector.replace(item['exp'],item['str']); selector = selector.replace(item['exp'],item['str']);
} }
}else{ if(selector.indexOf('#')>-1){
selector = selector.replace(item['exp'],item['str']); var arr = selector.split('#');
for(var i=0;i<arr.length;i++){
getId(arr[i]);
}
status=false;
break;
}
} }
// console.log(item,selector); }while(s!=selector);
if(status){
selector = selector.substr(1); //去前面逗号
result.push(selector);
} }
}while(s!=selector);
// console.log('out#',selector);
if(selector.indexOf('#')>-1){
var arr = selector.split('#');
for(var i=0;i<arr.length;i++){
getId(arr[i]);
}
}else{
selector = selector.substr(1); //去前面逗号
result.push(selector);
} }
} }
getId(selector); getId(selector);
@ -567,4 +572,6 @@
//表哥的姐姐 //表哥的姐姐
//爸爸的表姐 //爸爸的表姐
//表嫂的女儿的爸爸 //表嫂的女儿的爸爸
//老公的老婆的儿子的爸爸的老婆的儿子的爸爸
//我的三舅的儿子的爸爸的妹妹的儿子的叔叔的哥哥
// console.log(relationship('表嫂的女儿的爸爸')); // console.log(relationship('表嫂的女儿的爸爸'));