正则表达式将电话号码与00和+匹配,并允许空格

时间:2018-07-18 14:42:50

标签: regex

我创建了这个正则表达式,该正则表达式适用于我想要的东西:

^(?:00|\+)[0-9]?()[0-9](\s|\S)(\d[0-9]{6,14})$

但是,当某人的电话号码中有空格时,此功能将无效。

适用于:+14917672662642 不适用于:+14917 67 266 264 2

我该如何修改电话号码中的空格?

我的测试:https://regex101.com/r/rhwOBt/1

这将是最好的方法吗?

^(?:00|\+)([0-9]|(\s\S))?()[0-9](\s|\S)+(\d[0-9]{6,14}|(\s|\S)+)$

1 个答案:

答案 0 :(得分:0)

除非您确切知道您将要遇到的电话号码,否则正则表达式不应太聪明-即。使它能够识别出一串数字,并插入空白和国际拨号前缀(例如this one^(?:00|\+)[0-9]+(?:\s*[0-9]+)+$

关于如何记下电话号码有很多约定,并且取决于与之相关的网络/地区,电话号码的结构有很多不同的方式。将其塞入单个正则表达式将是一个噩梦。

错别字是可以预期的,即。根据电话号码的结构,不应出现空格的位置;无论如何,都需要某种赛后验证,这肯定不会在原始位置保留空白。