J'utilise cette fonction pour convertir du texte en liens cliquables ( <a href=""> </a>
) et les urls des images dans les balises img ( <img src="" />
).
const parsecontent = (text)=>{
var ishyperlink= /([^\S]|^)((https?\:\/\/)(\S+))/gi;
return (text || "").replace(ishyperlink,
function(match, space, url){
var isimglink = /https?:\/\/.*\.(?:png|jpg|gif|jpeg)/i;
if (url.match(isimglink)) {
return space + '<a href="' + url + '"><img src="' + url + '" /></a>';
}
return space + '<a href="' + url + '">' + url + '</a>';
}
);
}
En utilisant comme ceci
const div = document.querySelector("#content");
div.innerHTML = parsecontent(div.innerHTML);
Cela fonctionne bien, si le contenu comporte des espaces appropriés. Si les liens et les urls des images ne sont pas séparés par des espaces, le système échoue. Pouvez-vous m'aider à résoudre ce problème ?
Codepen ici https://codepen.io/dagalti/pen/GRqpYLp