答案 0 :(得分:4)
为避免在有人输入非ASCII字符但有效名称(例如田中太郎)时进行错误识别,您可能需要真正列出您不想包含的特殊字符。
但是为了简单起见,如果特殊字符的含义不是空格和字母,那么只需使用内置函数char.IsLetter
和char.IsWhiteSpace
:
if (str.Any(c => !char.IsLetter(c) && !char.IsWhiteSpace(c))){
//invalid
} else {
//valid
}
如果您想检查某些特定范围的字符而不是上述检查中的其他字符,只需将其他检查放入//invalid
部分:
if (str.Any(c => !char.IsLetter(c) && !char.IsWhiteSpace(c))){
//possible invalid
if (some additional character range checking){
//valid case
} else {
//truly invalid
//add as many else if as you want
}
} else {
//valid
}