我想用正则表达式验证我的货币字段。我想允许以下模式条目正则表达式整数或浮点数与两位小数
1.23
1
.45
0.56
56.00
不应该允许使用逗号。我试过\d+(\.\d\d)
,但它只允许第一,第四和第五项。 \d+(?:\.\d\d+)?
允许所有,但第三个。
我想用正则表达式验证我的货币字段。我想允许以下模式条目正则表达式整数或浮点数与两位小数
1.23
1
.45
0.56
56.00
不应该允许使用逗号。我试过\d+(\.\d\d)
,但它只允许第一,第四和第五项。 \d+(?:\.\d\d+)?
允许所有,但第三个。
使用\d*
而不是\d+
在小数点前匹配零个或多个数字。还要添加锚点(^
和$
),否则只要有可用的匹配项就会通过锚点。这也将验证一个空字符串,因此,如果需要,您可以使用一个前瞻,以确保至少有一个数字:
^(?=.*\d)\d*(?:\.\d\d)?$
您的解决方案运作良好。但它允许'1.254'和'23.1'。我想只允许两位小数。要么不会有小数或只有两位小数 – 2013-03-27 21:25:42
@KrishanuDey这是我不清楚;我更新了它,所以'\ d +'是'\ d \ d' – 2013-03-27 21:30:10
@ExplosionPills:That Worked。 :) 非常感谢。 – 2013-03-27 21:32:52
Regexes for floating-point numbers是一个解决的问题:
\d*\.?\d+
至少两小数:
(\d*\.\d)?\d+
为了使它更容易理解:
\d+|\d*\.\d{2,}
而对于正好有两个小数:
\d+|\d*\.\d{2}
不同的语言,不要忘记anchor表达,使其必须在整个字符串相匹配。
你试过\ d *(\。\ d *)吗? – Melanie 2013-03-27 21:08:40
不,让我试试。 – 2013-03-27 21:10:20
这些货币如何?我只看到花车。 – Bergi 2013-03-27 21:10:32