¿Cómo reemplazo todos los saltos de línea en una cadena con elementos <br />?

Resuelto Jin Yong asked hace 15 años • 14 respuestas

¿Cómo puedo leer el salto de línea de un valor con JavaScript y reemplazar todos los saltos de línea con <br />elementos?

Ejemplo:

Una variable pasada desde PHP como se muestra a continuación:

  "This is man.

     Man like dog.
     Man like to drink.

     Man is the king."

Me gustaría que mi resultado se viera así después de que JavaScript lo convierta:

  "This is man<br /><br />Man like dog.<br />Man like to drink.<br /><br />Man is the king."
Jin Yong avatar Apr 24 '09 11:04 Jin Yong
Aceptado

Esto convertirá todas las devoluciones en HTML.

str = str.replace(/(?:\r\n|\r|\n)/g, '<br>');

Por si te preguntas ¿qué?: significa. Se llama grupo de no captura. Significa que el grupo de expresiones regulares entre paréntesis no se guardará en la memoria para poder consultarlo más adelante. Puede consultar estos hilos para obtener más información:
https://stackoverflow.com/a/11530881/5042169 https://stackoverflow.com/a/36524555/5042169

eyelidlessness avatar Apr 24 '2009 04:04 eyelidlessness

Si lo que le preocupa es simplemente mostrar saltos de línea, puede hacerlo con CSS.

<div style="white-space: pre-line">Some test
with linebreaks</div>

Jsfiddle: https://jsfiddle.net/5bvtL6do/2/

Nota : preste atención al formato y sangría del código, ya que white-space: pre-linese mostrarán todas las líneas nuevas (excepto la última línea nueva después del texto, consulte el violín).

bersling avatar Sep 02 '2015 10:09 bersling

Sin expresiones regulares:

str = str.split("\n").join("<br />");
paulslater19 avatar Dec 07 '2011 09:12 paulslater19

Esto funciona para entradas provenientes de un área de texto.

str.replace(new RegExp('\r?\n','g'), '<br />');
WSkinner avatar Nov 21 '2013 19:11 WSkinner