2012-05-04 19 views
3

我需要一個正則表達式來確保字符串至少包含3個不同的字符(任何類型)。檢查字符串中是否存在至少3個不同字符的正則表達式

例如,aqaqaq無效,因爲它僅包含2個不同的字符。 aqwaqa或aq3aqa或aq!aqa是有效的。

這是可能的正則表達式?

語言:使用Javascript/PHP

感謝

+0

對不起,正確的。 Javascript和PHP,但我相信這兩個是相同的 – mspir

回答

4

您可以使用包含負向前看符號正則表達式:

/(.).*(?!\1)(.).*(?!\1)(?!\2)(.)/ 

例子:

> regex = /(.).*(?!\1)(.).*(?!\1)(?!\2)(.)/ 
> regex.exec('abab!aba') 
["abab!ab", "a", "!", "b"] 
> regex.exec('abababa') 
null 
+0

這很好,坦克分配! – mspir

+0

你能解釋一下嗎?謝謝 – mspir

+1

@Spiros:'\ 1'是引用第一個「(。)」的反向引用。表達式'(?!\ 1)(。)'意思是「除了與第一個'(。)'匹配的字符之外的任何字符。'\ 2'類似。 –

相關問題