javascript - 用正規從字串取得網址
phpcn_u1582
phpcn_u1582 2017-05-19 10:13:12
0
2
446
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

話說這種沒寫全的網域還真沒辦法準確判斷了,你可以把所有的網域後綴都枚舉出來判斷,但還是有誤差。試試我寫的這個辦法,這個正規寫的不對,你自己照我的寫法寫出來試試。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板