javascript - 电话号码的正则表达式?

标签 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

但它不能正常工作。所以任何帮助将不胜感激

最佳答案

你可以试试:

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

关于javascript - 电话号码的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23913484/

相关文章:

javascript - try catch 不捕获无效日期

ruby - 如何 .{n} 和 ?<option> : works in `Regexp` on Ruby 1. 9.3 环境

Python raw_input 带有强制 TLD?

javascript - D3 强制布局 : Straight line instead of curve for links (but only for some links)

javascript - [Wordpress + PHP + MySQL]插件内的数据库SELECT查询没有返回结果

javascript - 如何在 React Native 中从单独的组件创建对象数组?

javascript - 字符串转正则表达式

javascript - leafletjs map 添加所有层时的回调

Javascript Regex - 仅匹配一组 4 个数字

javascript - 分割字符串的最佳方法是什么(可能使用复杂的正则表达式)? (javascript/jquery)