问题:有一个字符串 roleCode=",AAABB,AAAD,AAAB,AAADA,AAAC,AAADB,AAICA,AAEBA,AAACA,AAAE,AAID,AAIE,AAIBB,AAIDA,AAIB,AAIC,AAIBA,"
规定: A是一个部门,具有最高权限;
AAA*是一个部门(注:只要是AAA开头的就属性AAA部门了.如:AAAE就是属于AAA部门的)
AAB*,解释同上类似. ...从AAA到AAI.现在我的问题是,如何用js search搜出里面有几个不同的部门,如上面的roleCode就有AAA部门,AAI部门和AAE三个不同的部门.用js 的search可以搜索出来吗? 如果不能,能不能用正则表达式做出来呢??或者你有什么好的办法解决吗? 谢谢.
规定: A是一个部门,具有最高权限;
AAA*是一个部门(注:只要是AAA开头的就属性AAA部门了.如:AAAE就是属于AAA部门的)
AAB*,解释同上类似. ...从AAA到AAI.现在我的问题是,如何用js search搜出里面有几个不同的部门,如上面的roleCode就有AAA部门,AAI部门和AAE三个不同的部门.用js 的search可以搜索出来吗? 如果不能,能不能用正则表达式做出来呢??或者你有什么好的办法解决吗? 谢谢.
<script type="text/javascript">
<!--
var roleCode=",AAABB,AAAD,AAAB,AAADA,AAAC,AAADB,AAICA,AAEBA,AAACA,AAAE,AAID,AAIE,AAIBB,AAIDA,AAIB,AAIC,AAIBA,";
var reg = /(AA[A-I])/g;
var arr = [];
for(var i = 0; i < roleCode.match(reg).length; i++){
if(arr[roleCode.match(reg)[i]] == undefined){
arr[roleCode.match(reg)[i]] = roleCode.match(reg)[i];
}
}
for(var j in arr){
document.write("----->" + arr[j])
}//-->
</script>
这个代码很好,不过我现在还有一个问题:如果roleCode=",A,AA,AAABB,AAAD,AAAB,AAADA,AAAC,AAADB,AAICA,AAEBA,AAACA,AAAE,AAID,AAIE,AAIBB,AAIDA,AAIB,AAIC,AAIBA,";我在roleCode字符串里加上",A,AA,"了,这种情况很特殊,就是说A和AA也是一个部门,就只两很特殊.如果按照你的写法,只能判断AAA-AAI的部门,还差这两个.有没有办法把它也判断.谢谢.
<script type="text/javascript">
var roleCode=",AAABB,AAAD,AAAB,AAADA,AAAC,AAADB,AAICA,AAEBA,AAACA,AAAE,AAID,AAIE,AAIBB,AAIDA,AAIB,AAIC,AAIBA,";
var m = roleCode.match(/aa[a-i]/ig);
var um = m.join(',').replace(/\b(aa[a-i]),(?=.*\b\1\b)/ig,'');
alert(um);
</script>
<script type="text/javascript">
var roleCode=",A,AA,AAABB,AAAD,AAAB,AAADA,AAAC,AAADB,AAICA,AAEBA,AAACA,AAAE,AAID,AAIE,AAIBB,AAIDA,AAIB,AAIC,AAIBA,";
var m = roleCode.match(/(?:aa[a-i]|a[a-i]|a)/ig);
var um = m.join(',').replace(/\b([a-i][^,]*),(?=.*\b\1\b)/ig,'');
alert(um);
</script>
<script type="text/javascript">
<!--
var roleCode="A,AA,AAABB,AAAD,AAAB,AAADA,AAAC,AAADB,AAICA,AAEBA,AAACA,AAAE,AAID,AAIE,AAIBB,AAIDA,AAIB,AAIC,AAIBA,";
var reg = /A(?:A(?:[A-I])?)?/ig;
var arr = [];
for(var i = 0; i < roleCode.match(reg).length; i++){
if(arr[roleCode.match(reg)[i]] == undefined){
arr[roleCode.match(reg)[i]] = roleCode.match(reg)[i];
}
}
for(var j in arr){
document.write("----->" + arr[j])
}//-->
</script>