过滤不从Regex过滤

时间:2016-12-20 19:41:35

标签: javascript regex

我在使用过滤功能方面遇到了一些麻烦,但我不想做我需要做的事情。

我需要对包含连续重复相同字母的字符串过滤此数组。

这就是我所拥有的:

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"]

知道我做错了吗?

1 个答案:

答案 0 :(得分:3)

您似乎需要在逗号之后匹配重复的char ,因此,将您的模式更改为

/(.),\1/

请参阅regex demo

<强>详情:

  • (.) - 捕获组匹配除了换行符之外的单个字符
  • , - 逗号
  • \1 - 反向捕获第1组。

&#13;
&#13;
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;
&#13;
&#13;