我看过几篇关于用RegEx验证美元金额的帖子,我非常接近我需要的内容,但有一个问题。这是我到目前为止所拥有的
^[\+\-]?\$?(\d*|\d{1,3}(,\d{3})*)(\.[0-9]+)?$它所取得的成就如下:
所有这些条件都满足了,但我遇到的问题是,如果用户只输入一个+、-或$,那么表达式将返回true。我要找的是,如果$+-存在的话,它们必须后面跟着一些东西。
我知道问题是小数之前的数字是可选的,小数段本身也是可选的。但我希望允许输入.25 w/o,必须强制将其输入为0.25。
我试着在可选的美元符号[^$]之后添加行尾\$?,认为+-$不能后面跟着行尾,但这似乎不起作用。
我很感激你的帮助!
-Shawn
发布于 2015-09-18 16:18:13
您需要使用以下正则表达式
\d*导致了问题,所以请使用“向前看”断言。它确认在符号之后至少会有一个字符。.,而不是使用\.,否则它将匹配任何字符。Regex :
^[+-]?\$?(?=.)(?:\d*|\d{1,3}(?:,\d{3})*)(?:\.[0-9]+)?$

发布于 2015-09-18 16:18:46
https://stackoverflow.com/questions/32656324
复制相似问题