¿Cómo reemplazo todos los saltos de línea en una cadena con elementos <br />?
¿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."
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
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-line
se mostrarán todas las líneas nuevas (excepto la última línea nueva después del texto, consulte el violín).
Sin expresiones regulares:
str = str.split("\n").join("<br />");
Esto funciona para entradas provenientes de un área de texto.
str.replace(new RegExp('\r?\n','g'), '<br />');