javacript正则去除数组中重复项

vararr=newArray([123],[456],[123],[123]);varres=arr.join(",").match(/([^,]+)(?!.*,\1)... var arr=new Array([123],[456],[123],[123]);
var res = arr.join(",").match(/([^,]+)(?!.*,\1)/ig);
document.write(res);
结果为23,456,23,123
为什么会匹配到23这东西?
展开
 我来答
自由de王国
2014-09-17 · TA获得超过1066个赞
知道小有建树答主
回答量:661
采纳率:50%
帮助的人:839万
展开全部
这和正则的匹配原理有关,对于字符串"123,456,123,123",你的孝银衡正则在第一个"1"处匹配失败,然后前进一步,从"2"处开始匹配,这时你的正则会匹配成功。白话一点就是正则不会将整个数字(123,456)作为一个单元巧做来处理,而是将每个单独的字符(1,2,3)作为一个单元来处理,当在“1”处匹配失败后,会从“2”处重新尝试匹配。
我不太清楚你到底想干什么,是去重还是获得只出现一次的字符串?
(?:^|,)([^,]+)(?=,|$)(?!.*,\1(?:,|$))这是去搏闷重的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式