RegEx匹配数千货币值

时间:2012-12-21 20:25:21

标签: jquery regex jquery-validate

我使用jquery验证插件并添加了检查货币的方法。这是方法:

j$.validator.addMethod("money", function(value, element) {
            return this.optional(element) || /^(\d{1,3})(\.\d{2})$/.test(value);
            //return this.optional(element) || /^((?:\d{1,3},)?\d{1,3})(\.\d{2})$/.test(value);
        }, "Must be in US currency format 0.99");

这正确验证了从0.00到999.99的值。但是,一旦我达到1,000.00,该方法将返回false。我对正则表达式不是很好,但据我所知,正则表达式与1,000.00或更高的值不匹配?

任何人都可以帮忙解决如何修改正则表达式以匹配0.00到999,999.99的货币值吗?那么,它可以正确验证数千​​的货币价值吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

试试这个正则表达式:

^\d{1,3}(?:,\d{3})?(?:\.\d{2})?$

Live Demo

答案 1 :(得分:0)

这将验证从0.00

开始的每个范围
^\d{1,3}([,]\d{3})*(\.\d{2})$

如果您想将它仅限于999,999.99,那么请使用此

^\d{1,3}([,]\d{3})?(\.\d{2})$