javascript - Dapatkan url daripada rentetan menggunakan regex
phpcn_u1582
phpcn_u1582 2017-05-19 10:13:12
0
2
463
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

phpcn_u1582
phpcn_u1582

membalas semua(2)
洪涛

Terdapat masalah dengan ekspresi biasa anda, sila ubah suai seperti berikut:

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

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.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan