gpt4 book ai didi

Jquery验证-允许数字不带前导零吗?

转载 作者:行者123 更新时间:2023-12-03 22:07:31 25 4
gpt4 key购买 nike

我正在使用 jquery 验证 ( http://docs.jquery.com/Plugins/Validation ),如下所示:

    var $__field = $("#selector");  
if ($__field.is(":visible")) {
$__field.rules('add', { required: true });
$__field.rules('add', { number: true });
}

如果用户输入一个没有前导零的数字,例如 0.5,则 jquery 验证会显示“请输入有效数字”。

如何更改验证以允许数字输入而不需要前导零?

最佳答案

问题出在用于数字的正则表达式上。正在查看the latest version ,第 1021-1023 行,我们得到:

number: function(value, element) {
return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(value);
},

问题在于,第一个 block (它查找前导负号和数字,无论是单独的还是以逗号分隔的三个一组)不是可选的:

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

在末尾添加 ? 将使其可选:

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

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

jQuery.validator.addMethod("number", function(value, element) {
return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(value);
}, "Please enter a valid number.");

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

关于Jquery验证-允许数字不带前导零吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3129150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com