C# 如何使用正则表达式限制文本框文本长度仅为9位数 字符串模式=@“^[0-9]{0,9}$” 返回Regex.IsMatch(输入,regFormat) 我在keydown事件中使用上述模式,请帮助我如何使用regex验证我的textbox.textlength最多9个数字,并且只接受数字而不接受字符串

C# 如何使用正则表达式限制文本框文本长度仅为9位数 字符串模式=@“^[0-9]{0,9}$” 返回Regex.IsMatch(输入,regFormat) 我在keydown事件中使用上述模式,请帮助我如何使用regex验证我的textbox.textlength最多9个数字,并且只接受数字而不接受字符串,c#,winforms,C#,Winforms,如果希望正则表达式限制为9个字符,可以使用大括号,即 /^[0-9]{0,9}$/ 要使文本框仅包含9个字符,可以指定其MaxLength属性: myTextBox.MaxLength = 9; 然后,如果您只希望用户能够输入数字,请处理TextChanged事件: myTextBox_TextChanged(object sender, EventArgs e) { if (Regex.IsMatch("[^0-9]",myTextBox.Text) myTextB

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

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

要使
文本框仅包含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);
}

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

没有正则表达式,我找到了解决此问题的方法。下面的代码在我的按键事件中非常有效

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);
}

else如果(!(e.KeyValue>=48&&e.KeyValue)我只从文本框中输入数字,希望用户只输入9位数字。请与我分享keydown事件的全部代码谢谢Scotty您也可以使用屏蔽文本框进行此操作。