2012-04-14 56 views
0

我正在尋找貨幣目的的表達式範圍。它需要1-100萬,並允許逗號和句點。我不需要(和。)的最小/最大值(對於正確的格式),但我希望一段時間後的數字是實際分值的最小/最大值2。由於正則表達式數值範圍1 - 1百萬

在範圍: 640或5,000.35或999,000

不在範圍內: 01或1,000,000.01或333,567.678

+0

'我希望經過一段時間後的數字是實際分值的最小值/最大值2。「 - 你的意思是'5,000.35'? – 2012-04-14 12:04:34

+0

是的,謝謝 – Presto44 2012-04-14 12:07:40

+0

哪種語言? – user123444555621 2012-04-14 12:23:38

回答

1

這應做到:

^(1(\.\d{2})?|[1-9]\d{0,2}(,?\d{3})?(\.\d{2})?)|1((,000){0,2}|(000){0,2})(\.00)?$ 

但它是否可能更容易您首先對該值進行歸一化(例如刪除除數字和.之外的任何字符),然後對其進行解析。

+0

不,它不... ... http://regexr.com?30l25(我自己也在努力,這似乎是一個痛苦......) – 2012-04-14 12:14:46

1

我的建議是:

  • 使用類似的東西來驗證輸入具有特定格式:

    (這裏有一個演示 - http://regexr.com?30l28

    (1[\.,])?([0-9]{1,3}[\.,])?([0-9]{1,3})([\.,][0-9]{1,2})

  • 然後測試數值範圍:

    value<1.000.000


我的正則表達式絕非100%完成,但它確實雖然驗證您的常規數字格式。

+0

這很好。我很感謝你的時間 – Presto44 2012-04-14 12:33:43

+0

+1用於指出顯而易見的情況,並將正則表達式與實際值的檢查相結合 – 2012-04-14 12:57:14

+0

@ Presto44不客氣,我的朋友!如果您發現一個特別有用的答案,建議將其標記爲答案(答案旁邊的勾號),以便社區可以從中受益。 – 2012-04-14 13:56:44