问题描述
||
我正在使用C#在窗口窗体上应用正则表达式。但是现场正则表达式不起作用
if (txtRefno.Text == \"\" && !Regex.IsMatch(txtRefno.Text,@\"^[0-9]+$\"))
{
msg.Text = \"reference no. contain Invalid characters\";
}
但它不能正常工作,不能接受一切。
我将模式更改为“ 1”,但收到的结果相同;然后我更改了regex.IsMatch(inputstring,pattern) == false;
的条件,则应该显示错误,但它对我也不起作用。
解决方法
我对Regex表达式没有帮助,因为我对此不太了解,但是我认为您应该在if语句中用OR替换AND,以允许编译器在文本框为的情况下检查regex不是空的。
if (txtRefno.Text.trim() == string.Empty || !Regex.IsMatch(txtRefno.Text,@\"^[0-9]+$\"))
{
msg.Text = \"reference no. contain Invalid characters\";
}
或者如果您不想在texbox为空的情况下显示消息,则可以使用以下内容
if (txtRefno.Text.trim() != string.Empty && !Regex.IsMatch(txtRefno.Text,@\"^[0-9]+$\"))
{
msg.Text = \"reference no. contain Invalid characters\";
}
,问题不在于您的正则表达式,而在于布尔表达式的第一部分。比较空字符串没有意义。更改为
txtRefno.Text!= \“ \”