我真的很糟糕的正則表達式,並想知道是否有人可以幫助我這個。我需要接受允許$,€和£的值,但不要求最小5.00(.00不是必需但允許)和2,000(逗號不是必需但允許)。正則表達式對於貨幣
的有效輸入
$5
€5
£5
$5.00
5
1000
1,000
1,000.00
我真的很糟糕的正則表達式,並想知道是否有人可以幫助我這個。我需要接受允許$,€和£的值,但不要求最小5.00(.00不是必需但允許)和2,000(逗號不是必需但允許)。正則表達式對於貨幣
的有效輸入
$5
€5
£5
$5.00
5
1000
1,000
1,000.00
如果你想允許像5.32£值的一些例子:
^[$€£]?(\d+([\.,]\d{2})?)$
如果不是:
^[$€£]?(\d+([\.,]00)?)$
一旦你」已檢查它是否格式正確使用正則表達式,你可以繼續檢查5 < int(value) < 2000
是否使用了第一個返回的正則表達式組。
編輯:已經想過這個問題,這裏有一個正則表達式,這將花費太多的邊界的護理:
^[$€£]?((([1-5],?)?\d{2,3}|[5-9])(\.\d{2})?)$
逗號爲數千;不是小數部分。 – 2011-05-15 20:32:44
嗯,我試過你的新編輯,當我測試模式時,我仍然得到錯誤的回報。 – Chad 2011-05-17 01:44:07
RegexMagic救援:
\b(?:[$£€])? *(?:2,?000|1,?[0-9]{3}|[1-9][0-9]{1,2}|[5-9])(?:\.[0-9]{1,2})?\b
你是否同意這樣做的所有這在一個正則表達式(儘可能)不是一個非常好的主意?
這只是在客戶端進行。 – Chad 2011-05-16 00:01:46
最低5.00或2,000? – sawa 2011-05-15 20:35:39