Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想用正则表达式验证我的货币字段。我想允许以下模式条目
1.23 1 .45 0.56 56.00
不允许使用逗号。我试过\d+(\.\d\d)了,但它只允许第一个、第四个和第五个条目。\d+(?:\.\d\d+)?允许除了第三个。
\d+(\.\d\d)
\d+(?:\.\d\d+)?
在小数点前使用\d*而不是\d+匹配零个或多个数字。还要添加锚点(^和$),否则只要有任何匹配项,它就会通过。这也将验证一个空字符串,因此如有必要,您可以使用前瞻来确保至少有一个数字:
\d*
\d+
^
$
^(?=.*\d)\d*(?:\.\d\d)?$
浮点数的正则表达式是一个已解决的问题:
\d*\.?\d+
至少两位小数:
(\d*\.\d)?\d+
为了使其更易于理解:
\d+|\d*\.\d{2,}
并且恰好是两位小数:
\d+|\d*\.\d{2}
根据您的语言,不要忘记锚定表达式,使其必须匹配整个字符串。