帮忙写个正则,用于匹配电话号码

匹配一段电话号码,单纯的字符串匹配我已经写好了,但是要过滤一些特殊的情况

这是我写的匹配电话号码的正则,用于匹配电话号,并且添加a标签用于直接点击打电话。并不是用于获取电话号码。


let phoneRex = /(1[3-8]\d{9})(?!@)/gi

return xxx.replace(phoneRex, '&nbsp;<a class="tel-text" href="tel:$1">$1</a>&nbsp;')

但比如匹配下面这个就有问题


qwerqwer<span name='14412121212'>14412121212</span>14412121212qwerqw14412121212erqewr

由于这个正则会匹配到span的name和内部,而实际的需求是要匹配所有不被span标签包裹的14412121212,并且前面那个span标签不一定会有,所以正则是应该过滤掉那两种情况的,但是不知道怎么写


想半天没想出来,求助~~


update:


/(1[3-8]\d{9})(?!@|((("|')?>)?\S*<\/\w*>))/gi

根据大家提供的思路,最终有了这个正则

用于匹配所有不在标签内的电话号码,第一个排除@符号是因为有的邮箱是电话号码开头的,比如说14412121212@163.com


感谢大家~


ABOUTYOU
浏览 386回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript