搜尋

首頁  >  問答  >  主體

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_u1582phpcn_u15822830 天前471

全部回覆(2)我來回復

  • PHP中文网

    PHP中文网2017-05-19 10:15:12

    你的正規有問題,修改如下:

    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);

    回覆
    0
  • 漂亮男人

    漂亮男人2017-05-19 10:15:12

    /(http:\/\/)?[A-Za-z0-9]*\.[A-Za-z0-9]+\.(:?com|cn|org|net|biz|...还有一大堆...)/g

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

    回覆
    0
  • 取消回覆