gpt4 book ai didi

javascript - 仅在 jQuery 验证中验证数字、括号和空格

转载 作者:搜寻专家 更新时间:2023-11-01 05:13:55 25 4
gpt4 key购买 nike

我正在努力尝试在 jQuery 验证中验证电话号码,但失败了。我只想允许像 (01660) 888999 这样的数字。环顾网络,我发现了一百万个例子,但似乎没有任何效果。这是我目前的努力

$.validator.addMethod("phonenumber", function(value) {
var re = new RegExp("/[\d\s()+-]/g");
return re.test(value);
//return value.match("/[\d\s]*$");
}, "Please enter a valid phone number");

最佳答案

Bergi 是正确的,您构造正则表达式的方式是错误的。

另一个问题是您缺少 anchor 和 +:

var re = /^[\d\s()+-]+$/;

请注意,尽管基于正则表达式的解决方案仍将允许输入一些无效的电话号码。您可以通过多种方式改进正则表达式,例如,您可能希望至少有 x 个数字。

对于哪些电话号码有效和无效,有很多规则。您不太可能以可维护的方式将所有这些规则编码为正则表达式,因此您可以尝试以下方法之一:

  • 找到一个能够验证电话号码的库(但可能不是基于正则表达式的)。
  • 如果您需要正则表达式,请以最接近规则的方式为目标,但不要尝试处理所有特殊情况。我建议尝试编写一个接受所有有效电话号码但不一定拒绝所有无效电话号码的表达式。

您可能还想考虑为您的解决方案编写测试用例。这些测试还将兼作一种文档形式,说明您希望接受和拒绝哪些输入。

关于javascript - 仅在 jQuery 验证中验证数字、括号和空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11808630/

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