【发布时间】:2016-01-31 03:23:26
【问题描述】:
我有一个采用这个正则表达式的 Windows 窗体应用程序:
public bool priceRegex (string parameter)
{
Regex regexPrice = new Regex(@"^[0-9]+(\.[0-9][0-9]?)?");
Match matchPrice = regexPrice.Match(parameter);
return matchPrice.Success;
}
并在这里使用它:
if (name.priceRegex(PriceEntryBox.Text) == false)
{
MessageBox.Show("Invalid characters entered in Price Box", "Error");
}
后面跟着一个else,后面跟着其他代码。
这可行,并且当我输入“fdsf”或“dasds123”时会显示消息框,但是当输入“12fsdf”时它会引发异常,而不是显示消息框。有什么帮助吗?
【问题讨论】:
-
有什么异常?
-
它不会抛出该输入(或任何其他输入(除了 null)) - 什么是您的有效输入?
-
你有没有在调试模式下进入它?您的正则表达式不会引发异常。
-
如果可能,也更喜欢静态实现;
return Regex.Match(parameter, @"^[0-9]+(\.[0-9][0-9]?)?").Success; -
当出现故障时你应该
return?
标签: c# regex winforms datagridview