2010-08-10 24 views

Respuesta

22

\r es "Carriage Return" (CR, carácter ASCII 13), \n es "Line Feed" (LF, carácter ASCII 10). En los días anteriores, tenía dos caracteres ASCII al final de cada línea para decirle a la impresora qué hacer: CR le indicaba a la impresora que volviera al borde izquierdo del papel, LF avanzaría a la siguiente línea.

Los sistemas operativos todavía tienen diferentes convenciones sobre cómo se ve el final de una línea, algunos de ellos tienen \n\r, algunos tienen \n, algunos tienen \r\n.

En Javascript, la mayoría de las veces se trata de \n - así es como las cadenas normalmente cambian a la siguiente línea. Sin embargo, dependiendo de las cadenas con las que esté trabajando, también puede encontrarse con \r. ¿Qué estás haciendo exactamente?

+2

No conozco ninguna plataforma o protocolo que especifique '\ n \ r' como la nueva función de línea; el separador de línea nativo en MAC OS anterior a OS X era '\ r' solo. –

+0

@ Alan Si quiere que le digamos, solo pregunte. :) – bzlm

+0

@bzim: ¿Quiere decir que conoce un sistema que usa '\ n \ r' (' LFCR', '0x0A 0x0D') como un separador de línea? ¡Digas! –

8

Normalmente \r representa un carácter de retorno de carro (ASCII 0x0d), y \n es un carácter de nueva línea (ASCII 0x0a). This page tiene una lista de todos los caracteres especiales, citado aquí para completar:

  • \f partidos de avance del papel.
  • \r coincide con el retorno del carro.
  • \n coincide con el avance de línea.
  • \t coincide con la pestaña horizontal.
  • \v coincide con la tabulación vertical.
  • \0 coincide con NUL personaje.
  • [\b] coincide con el retroceso.
  • \s coincide con el espacio en blanco (abreviatura de [\f\n\r\t\v\u00A0\u2028\u2029]).
  • \S coincide con cualquier cosa que no sea un espacio en blanco (abreviatura de [^\f\n\r\t\v\u00A0\u2028\u2029]).
  • \w coincide con cualquier carácter alfanumérico (caracteres de las palabras) incluyendo subrayado (abreviatura de [a-zA-Z0-9_]).
  • \W coincide con cualquier carácter no verbal (abreviatura de [^a-zA-Z0-9_]).
  • \d coincide con cualquier dígito (abreviatura de [0-9]).
  • \D coincide con cualquier no dígito (abreviatura de [^0-9]).
  • \b coincide con un límite de palabras (la posición entre una palabra y un espacio).
  • \B coincide con un límite sin palabras (abreviatura de [^\b]).
  • \cX coincide con un carácter de control. E.g: \cm coincide con control-M.
  • \xhh coincide con el carácter con dos caracteres del código hexadecimal hh.
  • \uhhhh coincide con el carácter Unicode con cuatro caracteres de código hexadecimal hhhh.
+2

pensar en una vieja máquina de escribir manual de retorno de carro ... mueve la 'posición' actual de nuevo al comienzo de la línea. – StuartLC

+1

@Avinash, @nonnb es correcto: el retorno del carro y el avance de línea son términos que datan de los días de los terminales de papel; el carácter de retorno de carro mueve el cabezal de impresión a la columna cero, y el avance de línea avanza el rollo de papel en una línea. –

+0

'\ 0' no pertenece allí. '\ {number}' es solo una secuencia de escape octal. –

5

\n se AvLínea

\r es retorno de carro

En las ventanas, por ejemplo, los finales de línea son \r\n. En la gran mayoría de otros sistemas operativos, son \n.

+1

No del todo cierto. OS 9 por ejemplo tenía \ r \ n, IIRC. – EboMike

+2

Y un Mac OS alguna vez utilizó '' r', IIRC. –

3

\r y \n son representaciones digitales de la forma en que avanzaría a la siguiente línea en una máquina de escribir. \r es un carriage return y \n es un newline (también conocido como salto de línea). En una máquina de escribir, para ir al inicio de la nueva línea, devuelve el carro a la posición más a la izquierda y luego alimenta el papel en una línea.

Unix usa \n para significar nueva línea, Mac antes de OS9 usa \r, y Windows usa \r\n.

1

\n -> Para una nueva línea

\r -> Para retorno de carro

Cuestiones relacionadas