我需要验证金额字段,该字段不应为零金额。例如。 不能 0000,0.00,000.000,0 但 CAN 0.0001,1.000,1.00,1234.00 等值。
尝试@"[^1-9]+"
和@"0+((\.0+)"
但是它们会使包含零的每个值无效。
答案 0 :(得分:8)
我不明白为什么你需要一个正则表达式,只需将字符串转换为数字并检查它是否为0
:
decimal actNumber;
if(decimal.TryParse(myAmount, out actNumber) && actNumber > 0)
{ /* ... */ }
因此,您也可以使用之后的实际数字。
答案 1 :(得分:1)
^(?=.*?[1-9])\d+(\.\d+)?$
您可以使用简单的lookahead
来验证是否至少有一个[1-9]
。
答案 2 :(得分:1)
如果希望正则表达式检查只包含一个字符的字符串,则可以指定该字符位于开头,结尾和中间的任何位置。以下是如何对数字0执行此操作的示例:
regexp'^ 0 + $'
如果您担心包含非零数字的值,您可以使用以下方法确保不存在此类字符:
regexp'^ [^ 1-9] + $'