2014-01-10 50 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)用于英文名称。您的白名单方法将禁止他们。

相关问题