2015-02-23 64 views
0

我试图在逗号分隔的一串数字来检查重复:JavaScript的正则表达式逗号分隔的大量重复

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

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

对此有何帮助?

回答

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 
+0

我试过正则表达式这个“1,2,2,3”,并将其返回为有效 – swaggyP 2015-02-23 05:19:42

+0

@swaggyP是的,我正则表达式的第一部分将在输入含有任何重复的号码和第二返回true如果字符串包含任何重复的数字,我的答案的一部分将返回false。 – 2015-02-23 05:21:04

+0

好的,这是有道理的:另外我将如何检查,看看如果字符串只包含逗号分隔的数字 – swaggyP 2015-02-23 05:24:36

相关问题