我在使用过滤功能方面遇到了一些麻烦,但我不想做我需要做的事情。
我需要对包含连续重复相同字母的字符串过滤此数组。
这就是我所拥有的:
var regex = /(.)\1+/g;
var filtered = permutations.filter(function(string){
return !string.match(regex);
});
排列等于
["a,a,b", "a,a,b", "b,a,a", "a,b,a", "a,b,a", "b,a,a"]
此输出只显示相同:
["a,a,b", "a,a,b", "b,a,a", "a,b,a", "a,b,a", "b,a,a"]
输出应:
["a,b,a","a,b,a"]
知道我做错了吗?
答案 0 :(得分:3)
您似乎需要在逗号之后匹配重复的char ,因此,将您的模式更改为
/(.),\1/
请参阅regex demo
<强>详情:
(.)
- 捕获组匹配除了换行符之外的单个字符,
- 逗号\1
- 反向捕获第1组。
var regex = /(.),\1/;
var permutations = ["a,a,b", "a,a,b", "b,a,a", "a,b,a", "a,b,a", "b,a,a"];
var filtered = permutations.filter(function(string){
return !regex.test(string);
});
console.log(filtered);
&#13;