我想在textBox的只能输入字母,数字,下划线。能否用一个正则表达式来检验textBox有其它字符输入
希望各位大虾多多指教!!!

解决方案 »

  1.   

    大家帮忙看看
    为什么我运行总是true的
    //检验文本框是否有非法字符
    if(Regex.IsMatch(tb_name.Text,@"\w*"))
    {
    errorProvider1.SetError(tb_name,"只能输入字母,数字,下划线"); tb_name.SelectAll();
    tb_name.Focus();
    } 我输入###跟www一样,结果多是true的
      

  2.   

    private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
    {

    string s=e.KeyChar.ToString();
    if(s.Length>0)
    {
    string reg=@"[^\w^_]+";
    Match yyy=Regex.Match(s,reg);
    if(yyy.ToString()!="")
    {
    MessageBox.Show("error");
    e.Handled=true;
                      
    }
    }
    }
      

  3.   

    验证控件是否绑定到了textbox?
      

  4.   

    ^表示开头,$表示结尾。
    查MSDN,对Regex.IsMatch的解释是:
    “指示 Regex 构造函数中指定的正则表达式在输入字符串中是否找到匹配项。”也就是说,是能否找到一个匹配项,而不是匹配全部,只有你要求他必须以串首开始,串尾结束,那效果上也就是“匹配全部”了。原来的@"\w*"由于包含“*”,表示0个或多个,所以,总是匹配。
      

  5.   

    如果没有^$在这个例子中,"#abc_bcd#@!"  这样的字符串,也将会被匹配,也就是两头的不算