我有以下工作的正则表达式来提取许多不同格式的电话号码。
看到这里: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/