我相信我已经找到了“完美的”正则表达式来检查 jQuery Validate 中的货币,除了它似乎允许用户在末尾放置一个单独的小数或在后面加上一个数字的小数。
匹配数:700. 和 3.0
正则表达式:
^\$?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}[0-9]{0,}(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$
我一直在http://gskinner.com/RegExr/中使用它,但似乎无法在正确的位置修改它来解决我的小数问题。
目前它符合我需要的一切:
700,000 700,000.00 700000
下面是使用@Kolink 正则表达式的jQuery 验证器addMethod,供那些好奇的人使用:
jQuery.validator.addMethod("currency", function(value, element) {
return this.optional(element) || /^\$?(?=.)(?:[1-9]\d{0,2}(?:,?\d{3})*)?(?:\.\d{2})?$/.test(value);
}, "Please enter a valid number.");