我刚开始学习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);
}
}
谢谢!
答案 0 :(得分:4)
你的正则表达式必须是
regexpattern = "^\d+$";
修改强> 编码是错误的。它必须是这样的:
var regex = new Regex(@"^\d+$");
if (!regex.IsMatch(textBox1.Text))
{
MessageBox.Show("error, numbers only please!");
}
答案 1 :(得分:2)
任何开发人员的优秀资源都是正则表达式库。您正在寻找的机会已经发布在那里。例如,您可能希望将年龄限制在特定范围之间。
答案 2 :(得分:2)
您不需要正则表达式,只需检查它是否为数字: 这是一个示例代码,希望它应该可以工作。
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
}
}
答案 3 :(得分:1)
正则表达式:
不需要+
\d
来验证人的年龄。
通常居住在0 / 113
年之间的人。 :)
if(Regex.IsMatch(age, @"^\d{0,3}"))
其他方法:
int AgeAsInt;
if(int.TryParse(age, out AgeAsInt))
使用 linq :
if(!String.IsNullOrEmpty(age) && age.All(char.IsDigit))
就像我想的那样
if (int.TryParse(age, out ageAsInt) && ageAsInt <= 113)
你可以用它想要它。就个人而言,我更喜欢最后一个。