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

时间:2013-09-25 13:22:08

标签: 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))。

1 个答案:

答案 0 :(得分:4)

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

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

查看此正则表达式的live demo


正则表达式的一个小错误:当想要在字符类中包含文字短划线时,要么将其转义,要么将其放在第一位或最后一位。

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