jQuery验证money字段,接受空格?

时间:2015-04-10 14:19:31

标签: jquery regex jquery-validate

我有货币字段的自定义验证器,它接受像

这样的值
12,00$
122.04$
12123123

现在,我想让它接受theese值:

1 200$
1 200,22$

所以接受空间。不幸的是,我并不擅长正则表达式

这是我的自定义验证器:

$.validator.addMethod("money", function(value, element) {
    return this.optional(element) || value.match(/^\$?(\d+(?:[\.\,]\d{1,2})?)\s?\$?$/);
}, "Not valid...");

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式:

^\$?(\d+(?:\s\d+)*(?:[\.\,]\d{1,2})?)\s?\$?$

我只在您的正则表达式中添加了(?:\s\d+)*,以允许在初始数字后带有空格的任意数字位数。请注意,您不必在角色类.内转义,[\.\,](它等于[.,])。

这是demo

尝试

$.validator.addMethod("money", function(value, element) {
    return this.optional(element) || value.match(/^\$?(\d+(?:\s\d+)*(?:[.,]\d{1,2})?)\s?\$?$/);
}, "Not valid...");

答案 1 :(得分:1)

您可以使用以下正则表达式。

^\$?\d+(?:[ ,]\d+)*(?:\.\d+)?\$?$

DEMO