繁体   English   中英

电话号码正则表达式

[英]telephone number regex

我目前正在尝试验证英国电话号码:

我正在寻找的格式是:01234 567891 或 01234567891 - 所以我需要这个数字有 5 个数字,然后是一个空格,然后是 6 个数字,或者只是 11 个数字。

数字必须以 0 开头。

我看过几个例子:

/^[0-9]{10,11} - 检查字符是否都是数字/^0[0-9]{9,10}$/ - 检查第一个数字是否为 0

我只是不确定如何将所有这些放在一起并检查是否有空格。

有人可以帮我解决这个正则表达式吗?

谢谢

试试这个正则表达式:

/^0\d{4}\s?\d{6}$/ 

许多人尝试一步完成输入验证和格式化。

最好将这些过程分开。

匹配任何格式的英国电话号码

^(?:(?:\(?(?:0(?:0|11)\)?[\s-]?\(?|\+)44\)?[\s-]?(?:\(?0\)?[\s-]?)?)|(?:\(?0))(?:(?:\d{5}\)?[\s-]?\d{4,5})|(?:\d{4}\)?[\s-]?(?:\d{5}|\d{3}[\s-]?\d{3}))|(?:\d{3}\)?[\s-]?\d{3}[\s-]?\d{3,4})|(?:\d{2}\)?[\s-]?\d{4}[\s-]?\d{4}))(?:[\s-]?(?:x|ext\.?|\#)\d{3,4})?$ 

上述模式允许用户以他们喜欢的任何格式输入数字。 不要限制用户输入特定的格式。

提取 NSN、前缀和扩展名

^(\(?(?:0(?:0|11)\)?[\s-]?\(?|\+)(44)\)?[\s-]?)?\(?0?(?:\)[\s-]?)?([1-9]\d{1,4}\)?[\d[\s-]]+)((?:x|ext\.?|\#)\d{3,4})?$

接下来,提取各种元素。

如果使用国际格式,$2 将是“44”,否则假定使用前导“0”的国家格式。

$4 包含分机号码(如果存在)。

$3 包含 NSN 部分。

验证和格式化

使用进一步的 RegEx 模式来检查 NSN 是否具有此数字范围的正确位数。 最后,将号码以 E.164 格式存储或以 E.123 格式显示。

有一个非常详细的英国号码验证和显示格式 RegEx 模式列表:

http://www.aa-asterisk.org.uk/index.php/Regular_Expressions_for_Validating_and_Formatting_UK_Telephone_Numbers

在这里复制太长了,并且很难维护该文档的多个副本。

/\d*(*)*+*-*/

简单的电话正则表达式包括 + () 和 - 任何地方,以及数字

如果您正在寻找所有英国号码,我会寻找的不仅仅是那个号码,有些是 020 7123 4567 等格式。

^\s*\(?(020[7,8]{1}\)?[ ]?[1-9]{1}[0-9{2}[ ]?[0-9]{4})|(0[1-8]{1}[0-9]{3}\)?[ ]?[1-9]{1}[0-9]{2}[ ]?[0-9]{3})\s*$

这种美国号码模式也接受以下电话:

800-432-4500,选项:9,分机:100316
800-432-4500,选项:9,分机:X100316
800-432-4500,选项 #3

(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4}),?(?:\s*(?:#|x\.?|opt(\.|:|\.:)?|option)\s*#?(\d+))?,?(?:\s*(?:#|x\.?|ext(\.|:|\.:)?|extension)\s*(\d+))?

在其他主题中使用此答案作为起点)

我认为^0[\d]{4}\s?[\d]{5,6}}会为你工作。 我使用[\d]而不是[0-9] 我发现RegExr是一个有用的在线工具,可以检查和尝试您的正则表达式。 它还有一个很好的示例库,可帮助您指明正确的方向

你应该只计算位数并检查它是10,

一些英国号码只有 9 位数字,而不是 10 位(不包括前导 0)。

其中包括 01 区号中的 40 个(使用“4+5”格式)、016977 区号(使用“5+4”格式)、所有 0500 号码和一些 0800 号码。

有一个列表: http://www.aa-asterisk.org.uk/index.php/01_numbers

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM