javascript - 用正则从字符串获取网址
phpcn_u1582
phpcn_u1582 2017-05-19 10:13:12
[JavaScript讨论组]
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)
PHP中文网

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

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号