我正在使用c#在我的窗口表单上应用正则表达式。但是字段上的正则表达式无法正常工作
if (txtRefno.Text == "" && !Regex.IsMatch(txtRefno.Text, @"^[0-9]+$"))
{
msg.Text = "reference no. contain Invalid characters";
}
但它不起作用并接受一切
我将模式更改为"^[0-9]+$"
,但收到的结果相同;然后我改变了regex.IsMatch(inputstring, pattern) == false;
的条件,然后应该显示错误,但它也不适用于我。
答案 0 :(得分:9)
我无法帮助你处理正则表达式,因为我不是很强大,但我认为你应该在你的if语句中用OR替换AND以允许编译器在文本框中检查正则表达式不是空的。
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";
}
答案 1 :(得分:0)
问题不在于正则表达式,而是在布尔表达式的第一部分。没有比较空字符串。将其更改为
txtRefno.Text!=“”