gpt4 book ai didi

JavaScript 正则表达式未将手机号码与国际代码匹配

转载 作者:行者123 更新时间:2023-12-01 01:16:35 24 4
gpt4 key购买 nike

正在尝试根据正则表达式 /^((254|255)[0-9]+){9,15}$/ 验证手机号码 254777123456 ,手机号码应以指定的国家/地区代码为前缀,但手机号码的总长度不应超过 15 个字符,通过 javascript 执行此操作,我得到空值,任何人都可以指出我做错了什么。

PS。我使用的国家/地区代码比我指定的国家/地区代码多得多,我只是将这两个代码作为测试,然后再添加其他代码,因为它们都将由管道分隔。

最佳答案

你的正则表达式 ^((254|255)[0-9]+){9,15}$ 意味着,选择至少 4 位数字(其中前 3 位应该是 254255),并且它们的整体必须出现至少 9 次到最多 15 次,这意味着匹配的字符串的最小长度应为 36 个字符。这显然是你不想要的。您的正则表达式几乎不需要修正,您需要将 [0-9] 部分取出并单独使用 {9,12} 量词。使用的正确正则表达式应该是这样的,

^(?:(?:254|255)[0-9]{9,12})$

此正则表达式将分别匹配 254255 并将剩余数量限制为从 9 到 12 匹配(因为您希望匹配长度为 15 的最大数量,其中 3我们已经分离出的数字)

Demo

var nums = ['254777123456','255777123456','255777123456123','2557771234561231']

for (n of nums) {
console.log(n + " --> " + /^(?:(?:254|255)[0-9]{9,12})$/g.test(n));
}

关于JavaScript 正则表达式未将手机号码与国际代码匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54705200/

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