我想用正則表達式驗證我的貨幣字段。我想允許以下模式條目正則表達式整數或浮點數與兩位小數
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