ASP.NET C# 登陆窗体 限制用户名只输入字母 数字以及下划线

文本框的输入限制,我们主要集中两个问题:

一、怎样限制用户名输入的长度?

答:设置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