比如有这么一组数组,里面放了20个18位的身份证号码
要判断里面的身份证号码是否有重复
如何快速判断?
var ary = new Array("111","22","33","111");
var s = ary.join(",")+",";
for(var i=0;i<ary.length;i++)
{
if(s.replace(ary[i]+",","").indexOf(ary[i]+",")>-1)
{
alert("有重复!");
}
}
var ary = new Array("111","22","33","111");
var nary=ary.sort();
for(var i=0;i<nary.length-1;i++)
{if (nary[i]==nary[i+1])
{alert("重复内容:"+nary[i]);}
}
除了循环比较还能怎样
只有循环才有嘛!
<SCRIPT LANGUAGE="JavaScript">
<!--
function mm(a)
{
return /(\x0f[^\x0f]+)\x0f[\s\S]*\1/.test("\x0f"+ a.join("\x0f\x0f") +"\x0f");
}
var ary = new Array("111","22","33","112");
alert(mm(ary))
//-->
</SCRIPT>
梅花雪真是高,这都可以用正则表达式来做~!但看不大懂,可否解释下意思?
高人。
活用正则表达式里的 \1 (第一个匹配结果)
先用 join() 把数组转换成字符串且夹塞指定的分隔符 \x0f(这种分隔符用户一般是输不进来的),这一步纯粹是为简化且精确脚本而做。
这种模式是我写 MzTreeView 的时候想出来的招数,可以跳过 for 循环达到极端的效率。
先mark一下,明天再看
强就是强
用正则表达式!!
强悍!~
顶死
var hash = {};
| 论坛热门帖子: | [lch203] 写得蛮好的linux学习笔记(10-21) [黑马制造] 学习java的30个目标(10-19) [笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19) [udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18) [沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18) |
| TAG标签: | 是否 重复 元素 判断 如何 x0f var ary Array new mm |
注册
个人空间
