Jon*_*eet 35
private static readonly char[] SpecialChars = "!@#$%^&*()".ToCharArray();
...
int indexOf = text.IndexOfAny(SpecialChars);
if (indexOf == -1)
{
// No special chars
}
Run Code Online (Sandbox Code Playgroud)
当然,这将在内部循环 - 但至少你不必在你的代码中执行它.
Fiv*_*ols 12
Regex RgxUrl = new Regex("[^a-z0-9]");
blnContainsSpecialCharacters = RgxUrl.IsMatch(stringToCheck);
Run Code Online (Sandbox Code Playgroud)
Mar*_*ers 11
不检查字符串是否包含"特殊字符",通常最好检查字符串中的所有字符是否为"普通"字符,换句话说,使用白名单而不是黑名单.原因是有很多字符可以被认为是"特殊字符",如果你试图列出它们,你一定会错过一个.
因此,不要按照您的要求进行操作,而是检查您的字符串是否与正则表达式匹配@"^\w+$",或者您需要的任何内容.
Linq是新的黑人.
string.Any(c => char.IsSymbol(c));
Run Code Online (Sandbox Code Playgroud)
对于IsSymbol(),有效符号是UnicodeCategory的成员.
编辑:
这不会捕获所有字符.这可能会补充:
string.Any(c => !char.IsLetterOrDigit(c));
Run Code Online (Sandbox Code Playgroud)
这是使用 LINQ 检查特殊字符的简短解决方案
private bool ContainsSpecialChars(string value)
{
var list = new[] {"~", "`", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "+", "=", "\""};
return list.Any(value.Contains);
}
Run Code Online (Sandbox Code Playgroud)