结合正则表达式来验证英国和美国的电话号码

2024-01-07

我有两个正则表达式。一个用于验证英国号码(来自我的上一个问题 https://stackoverflow.com/questions/23195191/validate-uk-phone-number-including-its-area-code)和另一个验证美国号码:

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

  2. /\(?[2-9][0-8][0-9]\)?[-. ]?[0-9]{3}[-. ]?[0-9]{4}/

我想将这两者结合起来,以便我可以验证任何美国或英国号码。

Does or |操作够了吗?

在这里我使用 | 将它们结合起来。但它不验证数字:

http://regex101.com/r/wD4dI9 http://regex101.com/r/wD4dI9


是的,你的|运营商应该没问题。它看起来像这样:

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

它适用于您问题中的正则表达式演示:http://regex101.com/r/zX2cE5 http://regex101.com/r/zX2cE5

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

结合正则表达式来验证英国和美国的电话号码 的相关文章

随机推荐