我有货币字段的自定义验证器,它接受像
这样的值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...");
感谢您的帮助
答案 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)