2014-07-02 41 views
-1

我有一個表單,其中包含貨幣輸入。測試有效貨幣值

我想檢查輸入的值是有效貨幣(僅限數量)。

有效例子:

1 
10 
100 
1000 
10000 
etc. 
1.00 
10.00 
100.00 
1000.00 
10000.00 
etc 
1,000 
10,000 
etc 
1,000.00 
10,000.00 
etc 

我一直沒能找到我網上尋找,我的正則表達式是弱 - 我怎樣才能做到這一點?

編輯:

我打算做一個簡單的替換了「」和「」然後測試如果餘數是多少,但是這將驗證之類的東西:

1,0000,00,000 10.00.00 etc 

我想測試一個數字,一個人會承認。此外,該號碼不應包含貨幣符號

+0

設計用於驗證一個正則表達式。 – Kangkan

+0

因此加強你對正則表達式的瞭解。花一個小時在http://regexone.com/,你可以自己解決這個問題(以及任何未來的正則表達式問題)。 – redburn

+0

[十進制逗號]怎麼樣(http://en.wikipedia.org/wiki/Decimal_mark#Countries_using_Arabic_numerals_with_decimal_comma)?這是否也適用? –

回答

1
var cur = $("input#currency").val(); 
if(cur.match(/^\d+$/)) { 
    // your code here 
} 
+0

不適用於更改的小數 – Gabs00

+0

是的,它僅適用於OP的第一套示例,另外兩個示例應該不適用。 – vlaz

0

此驗證功能正常工作。我在JQuery Validator代碼中找到RegEx。

function isValidNum(num) { 
    var reg=/^-?(?:\d+|\d{1,3}(?:[\s\.,]\d{3})+)(?:[\.,]\d+)?$/; 
    return reg.test(num) && (num.split(".").length < 3); 
} 

編輯有一個錯誤,允許多個'。',在數字中。

+0

對'10,000.0000000'有效也不確定OP是否滿足減號。 [測試](http://regex101.com/r/eY2qQ4/1) – vlaz

2

試試這個正則表達式

/^((\d{0,3}(,\d{3})+)|\d+)(\.\d{2})?$/

測試用例 http://repl.it/UpC

+0

它令人滿意:http://regex101.com/r/eY2qQ4/4 – vlaz