求一个好用的正则匹配文字里包含的链接并替换。
我现在用的:
function linkUrl(contents){
let re = /(http:\/\/)?([A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*)/g;
contents = contents.replace(re,function(a,b,c){
return `<a href="http://${c}" target="_blank">${a}</a>`;
});
return contents;
}
问题一 aa.bb.com 中间加空格 cc.dd.com 在一行就会只分析出一个链接(带空格都会有问题)
问题二 带 https 无法分析成链接,比如 https://www.aaa.com
问题三 换行,每行一个网址,匹配转换错误。
求大神帮忙,谢谢!
我在万能的 github 上找到了 Linkify 解决了问题