2014-07-02 42 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