2016-03-05 3 views
0

Например, в моей форме мне нужно будет ввести мое имя в текстовое поле, но когда в текстовом поле или в номере есть специальный символ или номер, появится всплывающее окно с сообщением «Введите правильное имя» после нажатия кнопки ,Как отключить специальные символы и число в текстовом поле?

enter image description here

+2

Зависит от того, как вы определяете «особый характер». –

+0

все символы, которые не являются A-Z, a-z и пробелом – leimelson06

+1

Что делать, если меня зовут Renée Nyström? Или 田中 太郎? –

ответ

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 
} 
+0

Как это использовать? например, имя txtbox - FN? – leimelson06

+0

и он говорит) ожидается – leimelson06

+0

@ leimelson06 это должна быть тройная закрывающая скобка ')))' вместо двух '))' теперь это должно быть ОК. Получите 'str' из вашего' TextBox.Text', например: 'string str = textBoxFullName.Text;' или 'string str = FN.Text', затем вы можете применить вышеуказанную проверку. – Ian