我有以下工作正则表达式来提取不同格式的大量电话号码。
见这里:http://jsfiddle.net/SB5Ly/4/
var regex = new RegExp(
"\\+?\\(?\\d*\\)? ?\\(?\\d+\\)?\\d*([\\s./-]?\\d{2,})+",
"g"
);
....
(如果脚本未加载,请按顶部菜单中的“运行”按钮)
正如您在示例中所看到的(通过链接),最后2-3个电话号码格式(var phoneNumbers)与使用的正则表达式不匹配。 您可以测试正则表达式在脚本中修改它并运行它。
所以我需要一个匹配所有枚举电话号码格式的正则表达式(从整个网页中提取它们(document.body.innerHTML))。
答案 0 :(得分:4)
我不知道你想要的是什么样的规范,但这符合你所有的例子:
var regex = new RegExp("\\+?\\(?\\d*\\)? ?\\(?\\d+\\)?\\d*([\\s./-]?\\d{2,})+", "g");
查看此正则表达式的live demo。
正则表达式的一个小错误:当想要在字符类中包含文字短划线时,要么将其转义,要么将其放在第一位或最后一位。
你有[\\s-.]
,这是不正确的。它应该是[\\s.-]
,[-\\s.]
或[\\s\\-.]
。