From 98d8728380464219655d8c84ce72c9b19e821478 Mon Sep 17 00:00:00 2001 From: mumuy Date: Thu, 28 Apr 2016 16:19:28 +0800 Subject: [PATCH] =?UTF-8?q?updated=20=E6=AD=A3=E5=88=99=E4=B8=80=E5=A4=84b?= =?UTF-8?q?ug=E4=BF=AE=E5=A4=8D=EF=BC=8C=E6=80=A7=E5=88=AB=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- script/relationship.js | 73 +++++++++++++++++++++++------------------- 1 file changed, 40 insertions(+), 33 deletions(-) diff --git a/script/relationship.js b/script/relationship.js index 1c5bfee..98b798f 100644 --- a/script/relationship.js +++ b/script/relationship.js @@ -1,7 +1,7 @@ /** - * BY: haole zheng - * http://passer-by.com - */ +* BY: haole zheng +* http://passer-by.com +*/ (function(window){ //简写 var _filter = [ @@ -103,11 +103,11 @@ }, {//不知道性别,兄弟姐妹的兄弟是自己或兄弟 exp:/^,[olx][sb],[olx]b(.+)?$/, - str:',$1#,xb$1' + str:'$1#,xb$1' }, {//不知道性别,兄弟姐妹的姐妹是自己或姐妹 exp:/^,[olx][sb],[olx]s(.+)?$/, - str:',$1#,xs$1' + str:'$1#,xs$1' }, /* 孩子 */ {//孩子的姐妹是自己的女儿(年龄判断) @@ -514,14 +514,14 @@ //数组去重 var unique = function(arr) { - var result = [], hash = {}; - for (var i = 0, elem; (elem = arr[i]) != null; i++) { - if (!hash[elem]) { - result.push(elem); - hash[elem] = true; - } - } - return result; + var result = [], hash = {}; + for (var i = 0, elem; (elem = arr[i]) != null; i++) { + if (!hash[elem]) { + result.push(elem); + hash[elem] = true; + } + } + return result; }; //分词解析 @@ -563,14 +563,16 @@ } //简化选择器 - function selector2id(selector){ + function selector2id(selector,sex){ var result = []; var hash = {}; - var sex1 = sex2 = -1;//自己或对方性别:-1未知,0女性,1男性 - if(selector.indexOf(',w')==0){ - sex1 = 1; - }else if(selector.indexOf(',h')==0){ - sex1 = 0; + var sex2 = -1; //对方性别:-1未知,0女性,1男性 + if(sex<0){ //如果自己的性别不确定 + if(selector.indexOf(',w')==0){ + sex = 1; + }else if(selector.indexOf(',h')==0){ + sex = 0; + } } sex2 = selector.match(/,[mw]|([olx]s)|(d(&[ol]))$/)?0:1; var getId = function(selector){ @@ -599,10 +601,11 @@ } } }while(s!=selector); + // console.log('selector#',selector); if(status){ - if(selector==''&&sex1>-1&&sex1!=sex2){ + selector = selector.substr(1); //去前面逗号 + if(selector==''&&sex>-1&&sex!=sex2){ }else{ - selector = selector.substr(1); //去前面逗号 result.push(selector); } } @@ -646,32 +649,36 @@ }else if(id.indexOf('&l')>-1){ age = '&o'; } - id = id.replace(/&[ol]/g,''); - 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