c#输入验证正则表达式
本文关键字:正则表达式 验证 输入 | 更新日期: 2023-09-27 18:17:27
我刚开始学习c#。很抱歉,这个问题很幼稚。
我的第一个训练应用程序是你输入你的年龄,并在消息框中输出它。
我想用Regex验证输入,这样输入字母会引发错误。
问题是我不能让它接受正则表达式。
private void textBox1_TextChanged(object sender, EventArgs e)
{
string age;
age = textBox1.Text;
}
private void button1_Click(object sender, EventArgs e)
{
string regexpattern;
regexpattern = "^'t+";
string regex1;
regex1 = Regex.IsMatch(regexpattern);
if (textBox1.Text == regex1)
{
MessageBox.Show("error, numbers only please!");
}
else
{
string age;
string afe;
string afwe2;
afe = "You are ";
age = textBox1.Text;
afwe2 = " years old!";
MessageBox.Show(afe + age + afwe2);
}
}
谢谢!
你的正则表达式必须是
regexpattern = "^'d+$";
编辑编码是错误的。它必须是这样的:
var regex = new Regex(@"^'d+$");
if (!regex.IsMatch(textBox1.Text))
{
MessageBox.Show("error, numbers only please!");
}
对于任何开发人员来说,regex库都是一个很好的资源。很有可能你要找的东西已经贴在那里了。例如,您可能希望将年龄限制在某个范围内。
正则表达式库
你不需要一个正则表达式,只要检查它是否是一个数字:这里是一个示例代码,希望它应该工作。
private void button1_Click(object sender, EventArgs e)
{
string age = textBox1.Text;
int i = 0; // check if it is a int
bool result = int.TryParse(age, out i) // see if it is a int
if(result == true){ // check if it is a int
string afe;
string afwe2;
afe = "You are ";
afwe2 = " years old!";
MessageBox.Show(afe + age + afwe2);
} else {
MessageBox.Show("Please Enter a Number!"); // error message
}
}
with regex:
不需要用+
和'd
来验证人的年龄。一个人通常活在0 / 113
岁之间。:)
if(Regex.IsMatch(age, @"^'d{0,3}"))
其他方法:
使用int。TryParse
int AgeAsInt;
if(int.TryParse(age, out AgeAsInt))
使用<<p> strong> linq : if(!String.IsNullOrEmpty(age) && age.All(char.IsDigit))
as I would it
if (int.TryParse(age, out ageAsInt) && ageAsInt <= 113)
你可以用want it。我个人比较喜欢后者。