2011-02-07 187 views
5

我想檢查輸入字符串以驗證正確的文本。正則表達式檢查連續出現的3個或更多字符

a。我希望用戶允許編寫包括句點,逗號,連字符和圓括號的字母數字字符()

b。但是,我不希望用戶輸入一個包含3位或更多數字的數字。例如:12是允許的,而185不是。

c。我不希望用戶輸入像「.............」或「----------」或「aaaaaaaaaaaaaa」或「bbbbbbbb」等字符串。

請爲此建議正則表達式。

回答

1

您可以使用正則表達式:

(?!.*(.)\1{2})^[a-zA-Z0-9.,()-]*$ 

它使用負先行(?!.*(.)\1{2}),以確保有任何人物都不得重複3次。

然後它使用正則表達式^[a-zA-Z0-9.,()-]*$確保字符串由字母,數字,句號,逗號,括號和連字符組成。

Rubular link

+0

我用這個 `code`如果(的preg_match(「(*()\ 1 {2})^?![A-ZA-Z0-9,() - 。] * $「,$ about_you)){\t \t \t \t \t \t echo'Invalid Text'; \t \t} `code` 和它引發以下錯誤: 警告:的preg_match()[function.preg匹配]:未知的修飾 '^' 在E:\項目\ WWW \腳本\測試f.php在線33 第33行開始於if(preg_match(「(?!。*(。)\ 1 {2})^ [a-zA-Z0-9。,() - ] * $」,$ about_you) ){ – 2011-02-07 08:36:26

0

大多數正則表達式庫支持folloing: /(.)\1{2,}/

其中\1是AA向後引用

相關問題