【问题标题】:Regex for English and Irish Phone Numbers英语和爱尔兰电话号码的正则表达式
【发布时间】:2015-05-20 10:33:03
【问题描述】:

我一直在网上浏览各种regex 以进行电话号码验证。当然有数百种不同的示例,因为那里有数百种不同格式的电话号码......

我决定自己写有两个原因。

  1. 我想了解更多关于正则表达式的信息
  2. 我遇到的不符合我的需要

但是,我想知道你们中的一些人可能会帮助我解决一些问题,以使我的正则表达式更好。

我要找的数字格式如下:

  • 必须以 +353 或 +44 开头
  • 后跟数字 0 - 9
  • 能够在数字之间包含空格

目前我有这个:

([+][353]{3})[\d\s]{7,11}|([+][44]{2})[\d\s]{7,11}

这使我可以输入以下格式的数字:

+353xxxxxxx 或 +44xxxxxxx

我遇到的问题是它正在计算{7,11} 中的空格,因此如果有人进入:

+353 xxx xxx xxx 不会验证

我正在尝试找到一种方法,可以在我的任何数字 0 - 9 之间允许空格,但将数字限制为 11。

所以可能有人会过来输入这个号码:

+353 12 34 56 78

非常感谢任何帮助。

【问题讨论】:

  • 请注意,[353]{3} 将匹配 333555553535 等。总而言之,您对类的使用表明您应该从阅读正则表达式开始教程。
  • 嗨,Biffen,我肯定会阅读更多教程,我正在这样做。感谢您的评论,有助于查看我的正则表达式中的缺陷。谢谢。

标签: javascript jquery regex validation


【解决方案1】:

我要找的数字格式如下:

必须以 +353 或 +44 开头 后跟数字 0 - 9 能够在数字之间包含空格

这很简单:

\+(353|44)(\s*\d)+

作为一种改进,您可以在国际前缀后要求一定范围的数字。例如:

^\+(353|44)(\s*\d){9,12}$

将匹配 +44+353 后跟 9 到 12 位数字(可选空格)。 ^$ 匹配字符串的开头和结尾,因此数字开头或结尾的额外字符将导致匹配失败。

【讨论】:

  • 这将允许该人输入任意数量的数字
  • 是的,但我可以限制没有问题,我只是不知道如何忽略空格
  • @Javacadabra 我正在寻找一个接受手机和固定电话号码的英国和北爱尔兰电话号码
猜你喜欢
  • 2011-02-26
  • 2016-01-12
  • 1970-01-01
  • 2012-04-08
  • 1970-01-01
  • 1970-01-01
  • 2017-09-23
  • 2014-02-15
相关资源
最近更新 更多