javascript - Récupérer l'URL d'une chaîne à l'aide d'une expression régulière
phpcn_u1582
phpcn_u1582 2017-05-19 10:13:12
0
2
469
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);

Cette expression régulière est relativement simple à utiliser. Le seul problème est que s'il y a des espaces dans la chaîne, elle ne peut pas être divisée en deux URL.
Résoudre

phpcn_u1582
phpcn_u1582

répondre à tous(2)
洪涛

Il y a un problème avec votre expression régulière, veuillez la modifier comme suit :

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

En parlant de ça, il est vraiment difficile de juger avec précision un nom de domaine qui n'est pas entièrement écrit. Vous pouvez énumérer tous les suffixes du nom de domaine pour juger, mais il y a toujours une erreur. Essayez cette méthode que j'ai écrite. Cette expression régulière est fausse. Essayez de l'écrire selon ma méthode d'écriture.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal