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

看到这里: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

regex的一个小错误:当想要在字符类中包含文字破折号时,请对其进行转义或将其放在第一个或最后一个位置。

您输入了[\\s-.],这是不正确的。它应该是[\\s.-][-\\s.][\\s\\-.]

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

10-11 22:08
查看更多