我想创建一个 TextChanged 事件来检查输入文本是否符合特定条件,如果不符合则删除最后输入的字符。在这种情况下,标准是数字、1 个小数和 1 个小数。
我正在为数字和小数测试正则表达式并遇到问题。我尝试了几种不同的表达式(我自己写的很糟糕,所以它们是从其他各种堆栈溢出问题中挑选出来的),结果每次都是一样的。它接受数字就好了,但它不接受小数。任何帮助将不胜感激!
string isNumber = @"^\d{1,9}(\.\d{1,9})?$";
private void TextBox_TextChanged(object sender, EventArgs e)
{
TextBox text = (TextBox)sender;
Match match = Regex.Match(text.Text, isNumber);
if (!match.Success)
{
if (text.Text.Length > 1)
text.Text = text.Text.Substring(0, text.Text.Length - 1);
else
text.Text = "";
text.Select(text.Text.Length, 0); //set cursor to the end
//of the string
}
}