如何禁用文本框中的特殊字符和数字?

时间:2016-03-05 01:53:37

标签: c# winforms validation textbox

例如,在我的表单中,我需要在文本框中输入我的名字,但如果在文本框或数字中有特殊字符或数字,则会弹出一个消息框,说明"请键入a有效名称"按下按钮后。

enter image description here

1 个答案:

答案 0 :(得分:4)

为避免在有人输入非ASCII字符但有效名称(例如田中太郎)时进行错误识别,您可能需要真正列出您不想包含的特殊字符。

但是为了简单起见,如果特殊字符的含义不是空格和字母,那么只需使用内置函数char.IsLetterchar.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
}