2011-04-26 69 views
1

我想驗證一些用戶輸入,但我的正則表達式在遇到變音符時失敗。我正在談論像ăĂ等字符。正則表達式的變音問題

我應該添加到正則表達式代碼,所以它應該也驗證從輸入內的變音符號?

謝謝!

P.S .:如果有關係,我使用PHP和CakePHP框架。

這是我目前使用的用於驗證用戶輸入一段代碼:return preg_match('|^[0-9a-zA-Z_-\s]*$|', $value);

+1

如果您不告訴我們您的正則表達式是什麼,我們該如何幫助您? – Gabe 2011-04-26 16:44:13

+0

對不起,忘記了吧! – linkyndy 2011-04-26 16:47:50

回答

6

假設你想匹配的字母,然後讓Unicode字母應該有所幫助:

使用/\p{L}+/u例如,如果你想匹配一系列字母。不要忘記/u(Unicode)修飾符。

你的情況:

return preg_match('|^[0-9\p{L}_\s-]*$|u', $value); 

應該工作。

另外,使用|作爲正則表達式定界符可能不是一個好主意。對於目前的正則表達式/會做得很好;其他選擇是~#,因爲它們很少出現在文本中,並且在正則表達式中沒有任何特殊含義。

+0

非常感謝您的詳細解釋! – linkyndy 2011-04-26 17:37:11