acabo probado unos navegadores que utilizan este poco tonto de JavaScript:
function log_newline(msg, test_value) {
if (!test_value) {
test_value = document.getElementById('test').value;
}
console.log(msg + ': ' + (test_value.match(/\r/) ? 'CR' : '')
+ ' ' + (test_value.match(/\n/) ? 'LF' : ''));
}
log_newline('HTML source');
log_newline('JS string', "foo\nbar");
log_newline('JS template literal', `bar
baz`);
<textarea id="test" name="test">
</textarea>
IE8 y Opera 9 en Windows utilizan \r\n
. Todos los otros navegadores que probé (Safari 4 y Firefox 3.5 en Windows y Firefox 3.0 en Linux) usan \n
. Todos pueden manejar \n
bien al configurar el valor, aunque IE y Opera volverán a convertirlo a \r\n
internamente. Hay un artículo de SitePoint con algunos detalles más llamados Line endings in Javascript.
Tenga en cuenta también que esto es independiente de los finales de línea reales en el archivo HTML en sí (ambos \n
y \r\n
dan los mismos resultados).
Al enviar un formulario, todos los navegadores canonicalizan las líneas nuevas a %0D%0A
en la codificación URL. Para ver eso, carga, p. data:text/html,<form><textarea name="foo">foo%0abar</textarea><input type="submit"></form>
y presione el botón de enviar. (Algunos navegadores bloquean la carga de la página enviada, pero puede ver los valores de forma codificados en URL en la consola.)
No creo que realmente deba hacer mucho por determinar. Si lo que desea es dividir el texto en nuevas líneas, se podría hacer algo como esto:
lines = foo.value.split(/\r\n|\r|\n/g);
Tengo un control de entrada de línea múltiple donde se espera que el usuario ingrese una nueva lista separada por línea. Necesito analizar la lista dividiendo primero la cadena en nuevas líneas. –
@ landon9720: Para mis controles de entrada multilínea, tengo una función 'getValue' que toma el' valor' y devuelve 'value.replace (/ \ r \ n/g, '\ n')' - solo para mantener la salida coherente en todos los navegadores/plataformas. –
¡Buena pregunta especialmente para aquellos que son nuevos en la programación! Fuera de HTML y en JavaScript, es bueno saber cómo pasar a la siguiente/nueva línea. –