2010-12-01 17 views
8

De this question, este ...JavaScript nueva línea de caracteres

lines = foo.value.split(/\r\n|\r|\n/); 

es una manera de dividir una cadena, pero ¿Cómo unirse de nuevo con saltos de línea?

Además, me pregunto si digo linux que utiliza el carácter de nueva línea, luego cambio a Windows, ¿no se romperá mi aplicación web? ¿Los saltos no son reconocidos? O tal vez el navegador hace alguna conversión?

Respuesta

9

dividirlo en/\ r \ n /, en caso de que la cadena incluye el carro vuelve con nuevas líneas.

únete con '\ n', en cualquier navegador y cualquier sistema operativo.

+3

En el nodo REPL verás un literal '\ n' en la salida de '['foo', 'bar'], join ('\ n')', sin embargo, si ejecuta 'console.log (['foo', 'bar']. join ('\ n ')) 'verá el resultado esperado. Espero que esto ayude a alguien más allá. –

9

Usted puede utilizar el método del objeto Arrayjoin a aglutinar elementos de la matriz en una cadena:

lines.join("\r\n"); 
+0

¿Es solo para Windows? En Linux, la nueva línea es '\ n' ¿no es así? Supongo que el código funcionará de todos modos? –

+0

@jiewmeng Funcionará de todos modos, sí. –

+0

@JacobRelkin: no funcionó para mí usando el .split ('\ r \ n') pero funciona con .split (/ \ r? \ N /) – SimplGy

0

Como se ha dicho, se unen es el mejor, pero aquí es la manera más difícil (no probado, espero que no sea demasiado trivial):

var result; 

for (i=0;i<lines.length;i++){ 
    result+=lines[i]+"\r\n"; //depends on OS 
} 
13

Si desea unirse usando caracteres de nueva línea, acaba de hacer:

lines.join("\r\n"); 

Pero si desea mostrar en la página HTML, que te gustaría envolver cada línea en <p></p> tags:?

html = "<p>" + lines.join("</p><p>") + "</p>"; 
Cuestiones relacionadas