将电话号码解析为组件部分

Tri*_*ick 11 parsing phone-number

我需要一个经过良好测试的正则表达式(.net样式首选),或其他一些简单的代码,它们将美国/加拿大电话号码解析为组件部分,因此:

  • 3035551234122
  • 1-303-555-1234x122
  • (303)555-1234-122
  • 1(303)555 -1234-122

等等...

所有解析成:

  • AreaCode:303
  • 交流:555
  • 后缀:1234
  • 延期:122

mmo*_*sen 21

迄今为止给出的答案对我来说都不够强大,所以我继续寻找更好的东西,我找到了:

谷歌处理电话号码的图书馆

我希望它对你也有用.

  • 您能说明这个图书馆如何将电话号码解析为其组成部分吗?正如OP所提到的,区域代码,交换和后缀? (2认同)

Phi*_*eck 3

这是我使用的:

^(?:(?:[\+]?(?<CountryCode>[\d]{1,3}(?:[ ]+|[\-.])))?[(]?(?<AreaCode>[\d]{3})[\-/)]?(?:[ ]+)?)?(?<Number>[a-zA-Z2-9][a-zA-Z0-9 \-.]{6,})(?:(?:[ ]+|[xX]|(i:ext[\.]?)){1,2}(?<Ext>[\d]{1,5}))?$
Run Code Online (Sandbox Code Playgroud)

我相信我是从RegexLib那里得到的。

  • 那太糟了。我的眼睛在流血。 (5认同)