jQuery 验证货币字段,接受空格?
jQuery Validate money field, accept spaces?
我有一个货币字段的自定义验证器,它接受像
这样的值
12,00$
122.04$
12123123
现在,我想让它接受这些值:
1 200$
1 200,22$
所以接受空格。不幸的是,我不太擅长正则表达式。
这是我的自定义验证器:
$.validator.addMethod("money", function(value, element) {
return this.optional(element) || value.match(/^$?(\d+(?:[\.\,]\d{1,2})?)\s?$?$/);
}, "Not valid...");
您可以使用这个正则表达式:
^$?(\d+(?:\s\d+)*(?:[\.\,]\d{1,2})?)\s?$?$
我只将 (?:\s\d+)*
添加到您的正则表达式中,以允许在初始数字后有任意数量的带空格的数字。请注意,您不必在字符 class [\.\,]
中转义 .
和 ,
(它等于 [.,]
)。
这里是demo.
尝试
$.validator.addMethod("money", function(value, element) {
return this.optional(element) || value.match(/^$?(\d+(?:\s\d+)*(?:[.,]\d{1,2})?)\s?$?$/);
}, "Not valid...");
您可以使用下面的正则表达式。
^$?\d+(?:[ ,]\d+)*(?:\.\d+)?$?$
我有一个货币字段的自定义验证器,它接受像
这样的值12,00$
122.04$
12123123
现在,我想让它接受这些值:
1 200$
1 200,22$
所以接受空格。不幸的是,我不太擅长正则表达式。
这是我的自定义验证器:
$.validator.addMethod("money", function(value, element) {
return this.optional(element) || value.match(/^$?(\d+(?:[\.\,]\d{1,2})?)\s?$?$/);
}, "Not valid...");
您可以使用这个正则表达式:
^$?(\d+(?:\s\d+)*(?:[\.\,]\d{1,2})?)\s?$?$
我只将 (?:\s\d+)*
添加到您的正则表达式中,以允许在初始数字后有任意数量的带空格的数字。请注意,您不必在字符 class [\.\,]
中转义 .
和 ,
(它等于 [.,]
)。
这里是demo.
尝试
$.validator.addMethod("money", function(value, element) {
return this.optional(element) || value.match(/^$?(\d+(?:\s\d+)*(?:[.,]\d{1,2})?)\s?$?$/);
}, "Not valid...");
您可以使用下面的正则表达式。
^$?\d+(?:[ ,]\d+)*(?:\.\d+)?$?$