Allow only alphabetic name in text box in c#
我只需要允许用户在文本框中输入字母名称,例如jhon或kamran khan。我已经从不同的链接获得了信息,但还没有任何工作。在我的代码文本框中,获取以数字开头的值,例如3kamran,但我不需要允许3或任何其他数字。我正在使用C Windows应用程序,我的代码看起来像。
1 2 3 4 5 6 7 8 9 10 | private void txtName_TextChanged(object sender, EventArgs e) { if (System.Text.RegularExpressions.Regex.IsMatch(txtName.Text,"^[a-zA-Z]+$")) { MessageBox.Show("Enter Valid Name","Error", MessageBoxButtons.OK, MessageBoxIcon.Error); txtName.Text.Remove(txtName.Text.Length - 1); txtName.Clear(); txtName.Focus(); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | private void txtName_TextChanged(object sender, EventArgs e) { //here is the problem add ! in font if(!String.IsNullOrWhiteSpace(txtName)) // This will prevent exception when textbox is empty { if (!System.Text.RegularExpressions.Regex.IsMatch(txtName.Text,"^[a-zA-Z]+$")) { MessageBox.Show("Enter Valid Name","Error", MessageBoxButtons.OK, MessageBoxIcon.Error); txtName.Text.Remove(txtName.Text.Length - 1); txtName.Clear(); txtName.Focus(); } } } |
1 2 3 4 5 | if (!System.Text.RegularExpressions.Regex.IsMatch(textBox1.Text,"^[a-zA-Z]")) { MessageBox.Show("This textbox accepts only alphabetical characters"); textBox1.Text.Remove(textBox1.Text.Length - 1); } |
所有你需要的是 </P >
1 2 3 4 | private void TextBox_KeyUp(object sender, KeyEventArgs e) { e.Handled = char.IsLetter((char) e.Key); } |
你会更好的诠释,而不是使用正则表达式和精确的检查,如果有任何输入字符串的位的信息。 </P >
这是一个解决方案的使用
1 2 | if(txtName.Text.Any(char.IsDigit)) // Contains numbers |
作为一个边注:它是不是完全非法的给你的孩子一个名字是包含一号 </P >
实例名称是:你不会流的正则表达式匹配 </P >
- 玛丽-简
- é
- M?归零码(RZ)
如果你喜欢山羊D正则表达式版本则无冰的simplest to handle the Way TextChanged事件为你了,但我的支票是型。工作也会"糊"。 </P >
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | string oldText = string.Empty; private void txtName_TextChanged(object sender, EventArgs e) { if (txtName.Text.All(chr => char.IsLetter(chr))) { oldText = txtName.Text; txtName.Text = oldText; txtName.BackColor = System.Drawing.Color.White; txtName.ForeColor = System.Drawing.Color.Black; } else { txtName.Text = oldText; txtName.BackColor = System.Drawing.Color.Red; txtName.ForeColor = System.Drawing.Color.White; } txtName.SelectionStart = txtName.Text.Length; } |
我认为问题的冰,那你也要支持空间(例如像在你的
1 | [a-zA-Z ]+ |
(照顾的空格前的闭合支架) </P >
也做的很fraguile