2

我需要一行正则表达式的帮助来验证电话号码,它是这样的: tel:/^(?:(?:\+?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\.?|ext\.?|extension)\s*(\d+))?$/

这些是它验证的格式:

555 5555
1-555-555-5555
1.555.555.5555
15555555555 分机 555
15555555555 分机 555
15555555555 #555
15555555555 x。555

我想验证以下数字:

+263 772 485 384
773456284
0773456284

主要是国际号码

4

1 回答 1

1

首先,拆分一大块正则表达式。verbose如果有语言选项,您可能想使用它。我为你分了大部分:

Telephone Numbers (should be 'orred'):
  \+?\d{3}(?:\ \d{3,4})+
  \d[-.]\d{3}[-.]\d{3}[-.]\d{4}
  \d{9,11}

Extensions (should be 'anded' with the previous regexes)
  (\ ext(?:\.|ension)(?:\ \#)?\ \d{3,4})?
于 2012-08-19T16:04:59.857 回答