let str = "aaaa.com bbbb.com";
let re = /(http:\/\/)?([A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*)/g;
str = str.replace(re,function(a,b,c){return `<a href="http://${c}" target="_blank">${a}</a>`;});
console.log(str);
这个正则还比较好用,唯一的问题就在于字符串里有空格不能划分成两个 url。
求解
你的正则有问题,修改如下:
话说这种没写全的域名还真没法准确判断了,你可以把所有的域名后缀都枚举出来判断,但是还是有误差。试试我写的这个办法,这个正则写的不对,你自己按我的写法写出来试试。