就是给一个textbox做验证啊。输入如果输入的是非数字或“.”,则不让他输入。如果输入到3位数字就直接加个点。这是不是要求正则表达式的功力很深厚呢???
请详细指教下好吗?越详细越好。谢谢

解决方案 »

  1.   

    http://www.asp.net/AJAX/AjaxControlToolkit/Samples/MaskedEdit/MaskedEdit.aspx
    这个也许适合你
      

  2.   

    先定义个全局变量 public int _n=1;
                   public int _nn=0;
    if(e.KeyChar>=48 && e.KeyChar <=57)
    {
    e.Handled =false;
    if(this.textBox1.TextLength % (3*_n + _nn)==0 )
    {
    _n =_n+1;
    _nn =_nn+1;
    this.textBox1.Text =this.textBox1.Text + ".";
    this.textBox1.SelectionStart = this.textBox1.TextLength;
    }
    }
      

  3.   

    测试正确的:
    先定义个全局变量 public int _n=1; 
                  public int _nn=1;
    if(e.KeyChar>=48 && e.KeyChar <=57)
    {
    e.Handled =false;
    int i = this.textBox1.Text.Split('.').Length;
    _n = i;
    _nn=_n-1;
    if(this.textBox1.TextLength % (3*_n + _nn)==0 )
    {
    this.textBox1.Text =this.textBox1.Text + ".";
    this.textBox1.SelectionStart = this.textBox1.TextLength;
    }
    }