前段时间在做pc内嵌页的时候,有遇到过一个需求,就是要把用户聊天记录中的链接匹配出来,并转化为A标签,这个就涉及到链接的正则匹配了。刚开始试着找了一下网上的正则匹配表达式,后面发现还是不全。
后面只好自己写了一个方法,总算可以满足大部分的情况,不过还是有一点不足的是,就是还是不能匹配ip地址的链接,刚开始有试着兼容了一下这个模式,后面发现要兼容这个东西的坑太多了,就算能兼容少部分的情况,但是很多情况下还是会有bug,再加上平时ip地址的链接还是比较少的,因此就先不兼容了。代码如下:
1 | function Linkify = function (text, opts) { |
调用的话:1
2
3
4var text = '我的网站 www.sample.com.欢迎光临。';
console.log(Linkify(text));
最后得到:
我的网站 <a class="linkable" href="http://www.sample.com" target="_blank">www.sample.com</a>.欢迎光临。