2012-03-07 34 views
0

我想確定一個字符串是否完全包含一個給定的不同字符,重複至少一次。例如,「bbbbb」應該匹配,但「ccMMcc」不應該包含兩個不同的字母,分別爲c和m。假設正則表達式是最簡單的方法,我可以恥辱他們,我需要什麼來匹配我的字符串?重複唯一字符的JS正則表達式

+0

相關而不是一個確切欺騙的重複:HTTP:// stackoverflow.com/questions/6176684/find-if-the-string-contains-repeated-sequence-of-letters-javascript – epascarello 2012-03-07 14:56:00

+0

「重複至少一次」是什麼意思?這是否意味着必須至少有兩個這樣的字符,例如「BB」?或者應該單個字符也匹配,例如「B」? – 2012-03-07 15:00:27

+0

另外,有問題的「字符」是否包含換行符? – georg 2012-03-07 15:03:46

回答

5

您可以使用反向引用:

^(.)\1+$ 
+0

作品像一個魅力,謝謝:) – lpd 2012-03-07 15:17:24

2

"tttt".match(/^(.)\1*$/)回報["tttt","t"]"test".match(/^(.)\1*$/)回報null

+1

星號'*'表示0或更多的事件,所以這個正則表達式匹配單個字符,例如'「a 「' – Teneff 2012-03-07 15:02:47

+0

它應該是星號,否則將不匹配單個字符。是否「重複至少一次」意味着字符串必須包含至少兩個字符? – core1024 2012-03-07 15:05:19

+0

「至少重複一次」意味着該字符串應該包含多於一次的字符,因此您需要用加號替換星號('+') – Teneff 2012-03-07 15:47:50

2

的正則表達式是:

\b(\w)\1*\b 

那就是:

  • \ B:字邊界
  • (\ w)的:第一個字符,組
  • \ 1 *:任何數量的第一個字符
+0

爲了解釋起見,謝謝:) – lpd 2012-03-07 15:21:53

+0

這將匹配' 「a」或「a」 – Toto 2012-03-07 16:01:39