Javascript RegExp - 从字符串中提取电话号码

标签 javascript regex phone-number

我有以下工作正则表达式来提取大量不同格式的电话号码。

参见此处:http://jsfiddle.net/SB5Ly/4/

var regex = new RegExp(
            "\\+?\\(?\\d*\\)? ?\\(?\\d+\\)?\\d*([\\s./-]?\\d{2,})+",
            "g"
        );
....

(如果脚本没有加载,请按顶部菜单中的“运行”按钮)

正如您在示例中看到的(通过链接),最后 2-3 个电话号码格式 (var phoneNumbers) 与使用的正则表达式不匹配。 您可以测试正则表达式,在脚本中修改它并运行它。

所以我需要一个匹配所有枚举电话号码格式的正则表达式(从整个网页(document.body.innerHTML)中提取它们)。

最佳答案

我不知道你想要多规范,但这符合你所有的例子:

var regex = new RegExp("\\+?\\(?\\d*\\)? ?\\(?\\d+\\)?\\d*([\\s./-]?\\d{2,})+", "g");

查看 live demo这个正则表达式。


正则表达式的一个小错误:当想要在字符类中包含文字破折号时,请将其转义或将其放在最前面或最后。

你有 [\\s-.],这是不正确的。它应该是 [\\s.-][-\\s.][\\s\\-.] .

关于Javascript RegExp - 从字符串中提取电话号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19006152/

相关文章:

regex - 允许 .htaccess url 重定向中存在空格

regex - 可以使用正则表达式来匹配嵌套模式吗?

php - 在 PHP 中使用国家代码格式化电话号码

android - 通过模拟器发送电话号码

javascript - 如何更改 Angular js中对象(不是数组)的顺序

php - 提交按钮 onclick 事件上的 JavaScript 函数未验证文本框

c# - 需要使用 Regex 删除两个标签之间的空格

php - 在Woocommerce中获取所有客户手机号

javascript - 编写满足以下测试的函数 f

javascript - 如何让小部件每隔几秒更新一次