Estoy tratando de escribir una función para crear etiquetas de enlaces regulares y etiquetas de enlaces de imagen del texto en un área de texto.Convertir url a html <a> url de etiqueta y de imagen a <img> etiqueta con expresiones regulares de javascript
funciona la primera vez para ambos, pero si pego una etiqueta "a href" allí, la vincula doblemente. no hace las imágenes debido a la verificación de ImageRegex. alguna idea de cómo hacer que esto funcione?
tenga en cuenta que el área de texto podría tener múltiples URL de ambos tipos.
$("#message").blur(function() {
var imageRegex = /\.(png|jpg|jpeg|gif)$/;
var s = $(this).val().replace(/(?:^|[^"'])(\b(?:https?|ftp):\/\/[a-z0-9-+&@#\/%?=~_|!:,.;]*[a-z0-9-+&@#\/%=~_|])/gim, function(str) {
if (str.match(imageRegex)) {
return('<img src="' + str + '" />');
} else {
return('<a href="' + str + '">' + str + '</a>');
}
});
$(this).val(s);
});
+1 - ¿se trata de un ejercicio de aprendizaje o de trabajo? Si es el último, recomendaría jQuery para esto. –
esto es para un tablero de mensajes de música que ejecuto. Cambiaré esta función a jquery cuando pueda hacer funcionar la expresión regular, pero la expresión regular en sí misma no cambiará de todos modos. –
lo descubrí. publicaré la respuesta cuando el sitio me permita, para que otras personas utilicen –