如何使用正则表达式限制我的文本框文本长度只需9位数

时间:2014-11-11 21:30:10

标签: c# winforms

  • string pattern = @" ^ [0-9] {0,9} $";
  • 返回Regex.IsMatch(输入,regFormat);
  • 我在keydown事件上使用上面的模式请帮助我如何使用正则表达式将textbox.textlength验证为最多9位数并且仅使用数字而不是字符串。

3 个答案:

答案 0 :(得分:1)

如果您希望正则表达式限制为9个字符,则可以使用花括号,即

/^[0-9]{0,9}$/

答案 1 :(得分:1)

要使TextBox只占用9个字符,您可以指定MaxLength属性:

myTextBox.MaxLength = 9;

然后,如果您只希望用户能够输入数字,请处理TextChanged事件:

myTextBox_TextChanged(object sender, EventArgs e)
{
    if (Regex.IsMatch("[^0-9]",myTextBox.Text)
        myTextBox.Text.Remove(myTextBox.Length - 1);
}

检查TextBox的最后一个字符是否不是数字,如果不是数字,则将其删除。

答案 2 :(得分:0)

没有正则表达式我找到了解决这个问题的方法。下面的代码在我的keydown事件上工作真棒

else if (!(e.KeyValue >= 48 && e.KeyValue <= 57) || textBox1.Text.Length == 9)
{
   e.SuppressKeyPress = !(e.KeyCode == Keys.Back || e.KeyCode == Keys.Left || e.KeyCode == Keys.Right);
}