我已经看过几篇关于使用RegEx验证美元金额的帖子,而且我非常接近我需要但有一个问题。这是我到目前为止所拥有的
$col==7 || $col==9 ||...
以下是它的成就:
满足所有这些条件,但我遇到的问题是,如果用户只输入^[\+\-]?\$?(\d*|\d{1,3}(,\d{3})*)(\.[0-9]+)?$
,+
或-
,则表达式返回true。我正在寻找的是,如果$
存在,则必须遵循一些东西。
我知道问题是小数前面的数字是可选的,小数部分本身也是可选的。但是我想允许输入$+-
w / o不得不强制输入.25
。
我尝试在可选的美元符号0.25
之后添加不在行[^$]
后面,认为\$?
后面没有行尾,但是没有&#39 ;似乎工作。
我感谢任何帮助!
-Shawn
答案 0 :(得分:1)
您需要使用以下正则表达式
\d*
导致了问题,因此请使用前瞻断言。它确认符号后面至少有一个字符.
,使用\.
,否则它将匹配任何字符正则表达式:
^[+-]?\$?(?=.)(?:\d*|\d{1,3}(?:,\d{3})*)(?:\.[0-9]+)?$
<强> Regex explanation here 强>
答案 1 :(得分:0)