Jquery验证 – 允许数字没有前导零?

前端之家收集整理的这篇文章主要介绍了Jquery验证 – 允许数字没有前导零?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用 jquery验证( http://docs.jquery.com/Plugins/Validation):
var $__field = $("#selector");  
    if ($__field.is(":visible")) {  
        $__field.rules('add',{ required: true });
        $__field.rules('add',{ number: true });
    }

如果用户输入一个没有前导零的数字,例如.5然后jquery验证说“请输入一个有效的数字”.

如何更改验证以允许号码输入,而不需要前导零?

解决方法

问题是用于数字的正则表达式.看着 the latest version,线1021-1023,我们有:
number: function(value,element) {
    return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(value);
},

问题是,这个第一个块,寻找领先的负号和数字,无论是个人还是以三分之一用逗号分隔,不是可选的:

(?:\d+|\d{1,\d{3})+)

纠正一个?最后会使其可选:

(?:\d+|\d{1,\d{3})+)?

通过此更新,您可以修改本地的插件副本,将正则表达式更改为修改的版本,或者将replacement validation method添加到您的javascript:

jQuery.validator.addMethod("number",function(value,\d{3})+)?(?:\.\d+)?$/.test(value);
},"Please enter a valid number.");

在使用此addMethod调用的任何页面上,数字验证方法将被覆盖以执行不需要前导零的数字验证.

猜你在找的jQuery相关文章