我们需要使用JavaScript的一些HTML格式的匹配电话号码,并且非常接近但有问题。我们不希望匹配显示在max-length="404-555-1212"
等属性中的电话号码。请考虑以下文本:
Sample:
Shouldn’t Match:
max-length='0123456789'
max-length="0123456789"
max-length=012-345-6789"
Don’t want the >
<strong>866.643.4170</strong>
Don’t really want this plus included either:
+1-(800)-555-2468
abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789 +-.,!@#$%^&*();\/|<>"'
12345 -98.7 3.141 .6180 9,000 +42
555.123.4567 +1-(800)-555-2468
使用以下Regex,我们可以获取所有电话号码但不排除属性:
/(\d{1}[-. ])?\(?\d{3}\)?[-. ]? *\d{3}-? *[-. ]?\d{4}/g
我们尝试了以下操作,但它将>
留在<strong>
的末尾:
/[^"='](\d{1}[-. ])?\(?\d{3}\)?[-. ]? *\d{3}-? *[-. ]?\d{4}/g
有关如何使这项工作的任何想法?
答案 0 :(得分:1)
所以有人昨天回答了这个问题,我回来接受答案,但它已被删除。但是,他们提供的解决方案确实有效,对于子孙后代,我想发布他们给出的解决方案。
这是解决问题的正则表达式:
/(?:\d[-. ])?\(?\d{3}\)?[-. ]?\d{3}[-. ]?\d{4}(?!["'])/g
以下是工作示例的链接:
http://regex101.com/r/rK6wY1/1
我希望我可以归功于最初的回答者。