gpt4 book ai didi

javascript - 电话号码的正则表达式,包括国家代码最多 18 个字符

转载 作者:行者123 更新时间:2023-11-29 20:49:10 24 4
gpt4 key购买 nike

我想要一个正则表达式来标记以下示例的正确数字:

    +256897845    
+1 232321
+29 2343 2432 43
+555 2356897845
+1245 2356878
+918989784578
  • 必须在开头包含 + 符号
  • 可选支持最多 3 个空格喜欢:+29 2343 2432 43
  • 至少 8 个字符,包括 + 符号
  • 最大字符 18 位(3 个空格 + 4 位最大国家代码 + 加号 (+) 符号 + 10 位最大数字)

我已经尝试过自己但没有工作:

^\+[0-9]?()[0-9](\s|\S)(\d[0-9]{18})$

最佳答案

你可以使用

/^\+(?=(?:\s?\d){7,17}$)\d+(?:\s?\d+){0,3}$/

参见 regex demo

详情

  • ^ - 字符串的开始
  • \+ - 加号
  • (?=(?:\s?\d){7,17}$) - 到字符串末尾,必须出现 7 到 17 次可选空格和一个数字
  • \d+ - 1+ 位
  • (?:\s?\d+){0,3} - 可选空格和数字出现 0 到 3 次
  • $ - 字符串结尾。

JS 演示:

var strs = ['+256897845','+1 232321','+29 2343 2432 43','+555 2356897845','+1245 2356878','+918989784578'];
var rx = /^\+(?=(?:\s?\d){7,17}$)\d+(?:\s?\d+){0,3}$/;
for (var s of strs) {
console.log(s, "=>", rx.test(s));
}

关于javascript - 电话号码的正则表达式,包括国家代码最多 18 个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52800416/

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