【发布时间】:2015-06-19 11:47:37
【问题描述】:
我只需要允许用户在文本框中输入字母名称,例如 jhon 或 Kamran Khan。我已经从不同的链接获得了信息,但还没有任何工作。 在我的代码文本框中,获取以数字开头的值,例如 3kamran,但我不需要允许 3 或任何其他数字。 我正在使用 c# windows 应用程序,我的代码看起来像。
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();
}
}
【问题讨论】:
-
删除
^,虽然这不允许您输入双桶名称 - 即 Mary-Jane(或其中包含变音符号等的任何名称) -
尝试将@符号作为您的正则表达式匹配并修剪文本框文本,即 Regex.IsMatch(txtName.Text.Trim(), @"^[a-zA-Z]+$")
-
创建一个包含所有 walid 字符的 SCII 数组,然后查看是否有无效字符。
-
您应该使用 key_pressed 事件,并检查 Key == IsAlpha 属性设置句柄 true 或 false。
标签: c#