我有以下工作正则表达式来提取大量不同格式的电话号码。
参见此处: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/