En una aplicación en la que estoy trabajando, el usuario ingresa contenido en texto llano que luego se mostrará como HTML. Para hacer que la pantalla el contenido del usuario tan bien como sea posible, transformamos el contenido de la siguiente manera:Convirtiendo nuevas líneas a etiquetas HTML de párrafo/br, ¿puede ser una expresión regular única?
Cualquier bloque de texto delimitados por dos o más caracteres de nueva línea se envuelven en <p> etiquetas. Los nuevos caracteres de línea (y cualquier espacio en blanco entre ellos) se eliminan.
Cualquier nuevo carácter de línea nuevo (junto con el espacio en blanco circundante) se reemplaza por una etiqueta < br/>.
Actualmente estoy logrando esto colocando el texto a través de dos reemplazos de expresiones regulares, pero me preguntaba si podría consolidarse en uno. Esto es lo que tengo ahora (JavaScript):
// content holds the text to process
content = '<p>' + content.replace(/\n([ \t]*\n)+/g, '</p><p>')
.replace(/\n/g, '<br />') + '</p>';
Simplemente curioso, ¿está usando algún tipo de editor de html/javascript como TinyMCE o YUI? ¿O solo un elemento forma/textarea? – Dave
Simplemente un área de texto de forma antigua simple –
hola, ¿fue capaz de resolverlo? – Sisir