2013-08-07 196 views
-1

我試圖找到一條正則表達式來匹配貨幣值。貨幣格式的正則表達式

如果價格是1000美元那麼需要驗證格式1,000.00或1,000但在德國的情況下它是反對像1.000,00或1.000我需要驗證輸入金額是在美國的格式或德國格式.user可以輸入帶或不帶小數。

+0

到目前爲止你還有什麼? – Jerry

回答

1

如果您需要處理此類信息,爲什麼不使用parseCurrency()函數?如果有任何錯誤,它將產生false

正則表達式,我認爲在這種情況下至少應該避免,因爲有已經提供的功能。

這就是說,你可以使用像這樣的東西(^\d{1,3}(,\d{3})*(\.\d{2})?)$|(^\d{1,3}(\.\d{3})*(,\d{2})?$)

+0

不幸的是,給定的RegExp字符串不能按希望的那樣工作:如果是德文格式的數字「12.345.678,00」,RegExp將僅匹配前5位:「12.34」。通過將RegExp更改爲'(^ \ d {1,3}(,\ d {3})*(\。\ d {2})?)$ | ^(\ d {1,3}(\。\ d {3})*(,\ d {2})?$)'(將^和$符號放入子模式)我設法讓它按預期工作。 – cars10m

+0

@ cars10:奇怪......但很高興它爲你工作。根據你的發現,我已經更新了我的答案。 – npinti