87,907
社区成员
发帖
与我相关
我的任务
分享
var str="abdabcaca";
var reg=/(\w\w+).*\1/g;
str.match(reg);//abdab,caca
var str="abdabda";
var arr = [];
for (var i = 0; i < str.length-2; i++) {
var reg=/(\w\w+).*\1/;
var rs = str.slice(i).match(reg);
if (rs && arr.indexOf(rs[0])==-1)
arr.push(rs[0]);
}
alert(arr);
var str="abdabda";
var reg=/(\w+)(?=.*\1)/g;
str.match(reg);
// 首个abd后边又出现过abd,所以abd符合匹配,然后从abd后的字母a开始下一组,只找到了a在后边有出现,所以a(第四个字母,不是第一个)也符合匹配
1楼的是限定为两个字符长度,其他没区别var str="abdabda";
var reg=/(\w{2})(?=.*\1)/g;
str.match(reg);
使用右断言,js正则不支持左断言,用右断言也能完成不少事情