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
Il y a un problème avec votre expression régulière, veuillez la modifier comme suit :
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.