正则表达式的电话号码?

时间:2014-05-28 13:48:09

标签: javascript regex

您好我需要为电话号码构建一个正则表达式,例如:

  

+79261234567
  +7 926 123 45 67
  89261234567
  79261234567
  8(926)123-45-67
  9261234567个
  79261234567
  89261234567
  8-926-123-45-67
  8 927 1234 234
  8 927 12 12 888
  8 927 12 555 12
  8 927 123 8 123

我现在来到这个正则表达式:

/((8|\+7)[\- ]?)((\(?9\d{2}\)?[\- ]?)[\d\- ]{7,10})?[\d\- ]{10,10}/g

link to regexper.com

但它没有正确工作。任何帮助都将不胜感激

1 个答案:

答案 0 :(得分:3)

您可以尝试:

var input  = 'phone number',
    output = input.replace(/\(([^)]+)\)/, '$1').replace(/(^\+)|[- ]+/g, ''),
    result = /^\d{10,11}$/.test(output);

说明:

\(([^)]+)\) - looks for digits with brackets around them to be removed
(^\+)|[- ]+ - looks for starting `+` or whitespace/dash in number to be removed
^\d{10,11}$ - checks if number has exacly 10 to 11 digits