匹配一段电话号码,单纯的字符串匹配我已经写好了,但是要过滤一些特殊的情况
这是我写的匹配电话号码的正则,用于匹配电话号,并且添加a标签用于直接点击打电话。并不是用于获取电话号码。
let phoneRex = /(1[3-8]\d{9})(?!@)/gi
return xxx.replace(phoneRex, ' <a class="tel-text" href="tel:$1">$1</a> ')
但比如匹配下面这个就有问题
qwerqwer<span name='14412121212'>14412121212</span>14412121212qwerqw14412121212erqewr
由于这个正则会匹配到span的name和内部,而实际的需求是要匹配所有不被span标签包裹的14412121212,并且前面那个span标签不一定会有,所以正则是应该过滤掉那两种情况的,但是不知道怎么写
想半天没想出来,求助~~
update:
/(1[3-8]\d{9})(?!@|((("|')?>)?\S*<\/\w*>))/gi
根据大家提供的思路,最终有了这个正则
用于匹配所有不在标签内的电话号码,第一个排除@符号是因为有的邮箱是电话号码开头的,比如说14412121212@163.com
感谢大家~
相关分类