javascript - 用正则从字符串获取网址
phpcn_u1582
phpcn_u1582 2017-05-19 10:13:12
0
2
447
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。
求解

phpcn_u1582
phpcn_u1582

全部回复(2)
洪涛

你的正则有问题,修改如下:

var str = "aaaa.com bbbb.com http://www.yugasun.com";
var re = /([a-zA-z]+:\/\/)?(([^\s]+)\.([^\s]+))/g;
str = str.replace(re,function(a,b,c){return `<a href="http://${c}" target="_blank">${a}</a>`;});
console.log(str);
漂亮男人
/(http:\/\/)?[A-Za-z0-9]*\.[A-Za-z0-9]+\.(:?com|cn|org|net|biz|...还有一大堆...)/g

话说这种没写全的域名还真没法准确判断了,你可以把所有的域名后缀都枚举出来判断,但是还是有误差。试试我写的这个办法,这个正则写的不对,你自己按我的写法写出来试试。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板