javascript正则表达式以逗号分隔数字重复

时间:2015-02-23 05:09:48

标签: javascript regex

我正在尝试检查由逗号分隔的数字字符串中的重复项:

var rgx = /* the regex here? */ 
var str = "1,2,3,4,4,5";
var valid = rgx.test(str);

如果它检测到有重复项,就像在这种情况下有重复一样,我需要有效才能返回false。

对此有何帮助?

1 个答案:

答案 0 :(得分:1)

你可以试试下面的正则表达式,

/\b(\d+)\b.*?,\1\b/.test(str);

如果字符串包含重复的数字,则返回true。

示例:

> var str = "1,2,3,4,4,5";
undefined
> /\b(\d+)\b.*?,\1\b/.test(str);
true
> var str = "1,2,3,4,5";
undefined
> /\b(\d+)\b.*?,\1\b/.test(str);
false

如果你想让它为包含重复数字的字符串返回false,那么将整个正则表达式置于负向前瞻中。

> var str = "1,2,3,4,4,5";
undefined
> /^(?!.*?\b(\d+)\b.*?,\1\b)/.test(str);
false
> var str = "1,2,3,4,5";
undefined
> /^(?!.*?\b(\d+)\b.*?,\1\b)/.test(str);
true