用正则去掉数组中重复的元素
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用正则去掉数组中重复的元素相关的知识,希望对你有一定的参考价值。
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script>
//去掉数组中重复的元素
//此题最主要就是对数组进行排序拼接,在进行replace的替换,在进行分割,将其return到外部
//随机生成随机数压入空数组arr中
for(var i=0,arr=[];i<10;i++){
arr.push(parseInt(Math.random()*(12-8+1)+8));
}
console.log(String(arr));
function quchongfu(arr){//局部变量
return arr.sort()//先进行排序
.join(",,")//以,,进行拼接形如 a,,a,,b,,b,,b,,c,,d,,d
.replace(/(^|,)([^,]+)(,,\2)+(,|$)/g,"$1$2$4")
.split(",,");
}
arr=quchongfu(arr);//全局变量
console.log(String(arr));
//var reg=/(^|,)([^,]+)(,,\2)+(,|$)/g;
// $1 $2 $3 $4
//.replace(/^,|,$/g,"")若将上面的这句改为这样,就是将重复的元素全部删除
</script>
</head>
<body>
</body>
</html>
此文比较简单,方便以后查看
另外,还有一个小知识
var str="Jack is not a good man";//要将此句输出为 "Jack5 is6 not7 a8 good9 man10";
var i=5;
str.replace(/\b([a-zA-Z]+)\b/g,function(x){return x+(i++);})//输出结果为"Jack5 is6 not7 a8 good9 man10"
//其中\b XXX \b这个是单词边界,用于匹配某个单词
用正则方法匹配,简单方便
以上是关于用正则去掉数组中重复的元素的主要内容,如果未能解决你的问题,请参考以下文章