2014-01-10 78 views
0

如何在字符串中檢查包含特殊字符(如_ . , () &^% $ # @ ! *)的字符串? 我試圖創建一個正則表達式驗證器來檢查字符串,如下所示。正則表達式:檢查字符串中的任何特殊字符

bool isOk = Regex::IsMatch(firstname, "^[a-zA-Z]+$"); 

這是註冊表單中的名稱字段。它應該允許日文字符。但是我的RegEx只允許英文字符。我知道這是因爲[a-zA-Z]。但如何只檢查特殊字符並留下日文或韓文字符?

+1

這可能會有所幫助http://www.regular-expressions.info/unicode.html –

+0

可能的重複[更改RegEx以允許英文和日文字符](http://stackoverflow.com/questions/15151230 /改變正則表達式到允許換既-英日字符) – brandonscript

回答

1

既然你可能h對你不想允許的內容比你想要允許的內容更好的想法,使用[^]語法使用反轉字符集。

bool isOk = Regex::IsMatch(firstname, "^[^_\\.,\\(\\)&^%$#@!\\*]+$"); 

但請注意英文'FULL STOP' (U+002E)有時用於名稱。你的黑名單方法會禁止他們。所以,考慮從上面的代碼中刪除它。

此外,'SPACE' (U+0020)'HYPHEN-MINUS' (U+002D)用於英文名稱。您的白名單方法將禁止他們。

相關問題