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);
Ungkapan biasa ini agak mudah digunakan Satu-satunya masalah ialah jika terdapat ruang dalam rentetan, ia tidak boleh dibahagikan kepada dua URL.
Selesaikan
Terdapat masalah dengan ekspresi biasa anda, sila ubah suai seperti berikut:
Bercakap mengenainya, adalah sangat sukar untuk menilai dengan tepat nama domain yang tidak ditulis sepenuhnya Anda boleh menghitung semua akhiran nama domain, tetapi masih terdapat ralat. Cuba kaedah yang saya tulis ini adalah salah.