79 votos

¿Cómo eliminar todos los saltos de línea de una cadena?

Tengo un texto en un textarea y lo leo usando el atributo .value. Ahora me gustaría eliminar todos los saltos de línea (el carácter que se produce al pulsar enter) de mi texto ahora usando .replace con una expresión regular, pero ¿cómo puedo indicar un salto de línea en una regex? Si eso no es posible, ¿hay alguna otra manera?

132voto

Eremite Puntos 611

La forma de encontrar un salto de línea varía según la codificación del sistema operativo. En Windows sería \r\n pero Linux sólo utiliza \n y Apple utiliza \r.

Encontré esto en saltos de línea javascript

someText = someText.replace(/(\r\n|\n|\r)/gm,"");

Eso debería eliminar todo tipo de saltos de línea.

102voto

PointedEars Puntos 4933

Probablemente se trate de un FAQ. En cualquier caso, los saltos de línea (mejor: las nuevas líneas) pueden ser uno de los Retornos de Carro (CR, \r en los Macs más antiguos), Line Feed (LF, \n en Unices incl. Linux) o CR seguido de LF ( \r\n en WinDOS). (Contrariamente a otra respuesta, esto tiene nada que tiene que ver con la codificación de caracteres).

Por lo tanto, lo más eficiente RegExp literal para que coincida con todas las variantes es

/\r?\n|\r/

Si quiere hacer coincidir todas las nuevas líneas de una cadena, utilice una coincidencia global,

/\r?\n|\r/g

respectivamente. A continuación, proceda a la replace como se sugiere en otras respuestas. (Probablemente usted hace no desea eliminar las nuevas líneas, pero sustituirlas por otros espacios en blanco, por ejemplo el carácter espacio, para que las palabras permanezcan intactas).

17voto

RobW Puntos 2202

String.trim() elimina los espacios en blanco del principio y el final de las cadenas... incluyendo las nuevas líneas.

Aquí tienes un ejemplo de violín: http://jsfiddle.net/BLs8u/

6voto

Kendall Frey Puntos 19670

Puede utilizar \n en una regex para las nuevas líneas, y \r para los retornos de carro.

var str2 = str.replace(/\n|\r/g, "");

Los distintos sistemas operativos utilizan diferentes terminaciones de línea, con mezclas variables de \n y \r . Esta regex los reemplazará a todos.

3voto

h2ooooooo Puntos 18164

Un salto de línea en regex es \n Así que su script sería

var test = 'this\nis\na\ntest\nwith\newlines';
console.log(test.replace(/\n/g, ' '));

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X