文本框的输入限制,我们主要集中两个问题: 一、怎样限制用户名输入的长度? 答:设置txtName的属性 MaxLength="10"; (我们这里以10个字符为例) 二、怎样限制用户名只输入字母 数字以及下划线 答:有两种方法可以实现 方法1: //通过监听键盘keychar实现 private void txtName_KeyPress(object sender, KeyPressEventArgs e) { this.txtName.ImeMode = ImeMode.Off; if ((e.KeyChar >= '0' && e.KeyChar <= '9') || (e.KeyChar >= 'A' && e.KeyChar <= 'Z') || (e.KeyChar >= 'a' && e.KeyChar <= 'z') || (e.KeyChar == 8) || (e.KeyChar == '_')) { e.Handled = false; } else { MessageBox.Show("用户名只能为字母、数字和下划线!"); e.Handled = true; } } 方法二: //使用正则表达事匹配 private void txtName_KeyPress(object sender, KeyPressEventArgs e) { this.txtName.ImeMode = ImeMode.Off; Regex reg = new Regex(@"^\w+$"); if (this.txtName.Text != "")//要加上一个是否为空的判断 { if (reg.IsMatch(this.txtName.Text)) { e.Handled = false; } else { MessageBox.Show("用户名只能为字母、数字和下划线!"); e.Handled = true; } } } 对于这两种方法各有优劣,大家在实际应用中也会发现,第一种方法可以在输入前就限定用户输入不符合的字符,第二种方法是用户输入后再做的判断。 文章后面附上一些常用的正则表达式,以方便大家使用: 只能输入数字:"^[0-9]*$"。 只能输入n位的数字:"^\d{n}$"。 只能输入至少n位的数字:"^\d{n,}$"。 只能输入m~n位的数字:。"^\d{m,n}$" 只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。 只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。 只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。 只能输入非零的正整数:"^\+?[1-9][0-9]*$"。 只能输入非零的负整数:"^\-[1-9][]0-9"*$。 只能输入长度为3的字符:"^.{3}$"。 只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。 只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。 只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。 只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。 只能输入由数字、26个英文字母或者下划线组成的字符串:"^\w+$"。 验证用户密码:"^[a-zA-Z]\w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。 验证是否含有^%&',;=?$\"等字符:"[^%&',;=?$\x22]+"。 只能输入汉字:"^[\u4e00-\u9fa5]{0,}$"
转载于:https://www.cnblogs.com/hfzsjz/p/3866538.html