gpt4 book ai didi

javascript - 委内瑞拉电话号码的正则表达式与预期不匹配

转载 作者:行者123 更新时间:2023-11-28 00:59:54 25 4
gpt4 key购买 nike

我有这两个正则表达式:

Local Numbers: /^0058|\+58(?:2(?:12|4[0-9]|5[1-9]|6[0-9]|7[0-8]|8[1-35-8]|9[1-5]|3[45789]))\d{7}$/
Mobile Numbers: /^0058|\+58(?:4(?:1[246]|2[46]))\d{7}$/

这个想法是验证添加该国家/地区前缀的委内瑞拉电话号码。现在,这样的值是有效的:

00584129999999
04129999999
04249999999
00584249999999
02129999999
00582129999999

但是值(value)观是这样的:

+584129999999
+582129999999

不是。我找不到哪里出错了,所以有什么建议吗?

最佳答案

交替运算符|的范围比你想象的要大。你的第一个正则表达式分为

^0058
|
\+58(?:2(?:12|4[0-9]|5[1-9]|6[0-9]|7[0-8]|8[1-35-8]|9[1-5]|3[45789]))\d{7}$

此外,您还应该允许使用单个 0(而不是强制使用 +580058)。

你可能想要类似的东西

^(?:(?:00|\+)58|0)(?:2(?:12|4[0-9]|5[1-9]|6[0-9]|7[0-8]|8[1-35-8]|9[1-5]|3[45789]))\d{7}$

如果您想将两个正则表达式合并为一个,没问题:

^(?:(?:00|\+)58|0)(?:2(?:12|4[0-9]|5[1-9]|6[0-9]|7[0-8]|8[1-35-8]|9[1-5]|3[45789])|4(?:1[246]|2[46]))\d{7}$

测试一下 live on regex101.com .

关于javascript - 委内瑞拉电话号码的正则表达式与预期不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25746304/

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