2015-02-23 94 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

相關問題