Estoy usando jquery y tengo un área de texto. Cuando envíe por mi botón, alertaré cada texto separado por una nueva línea. ¿Cómo dividir mi texto cuando hay una nueva línea?
var ks = $('#keywords').val().split("\n");
(function($){
$(document).ready(function(){
$('#data').submit(function(e){
e.preventDefault();
alert(ks[0]);
$.each(ks, function(k){
alert(k);
});
});
});
})(jQuery);
entrada de ejemplo:
Hello
There
El resultado que quiero es:
alert(Hello); and
alert(There)
Debe analizar las nuevas líneas independientemente de la plataforma (sistema operativo). Esta división es universal con expresiones regulares. Puede considerar usar esto:
P.ej
fuente
Debería ser
está pasando una cadena literal al comando split, no una expresión regular.
fuente
"\n"
y/\n/
son dos cosas COMPLETAMENTE diferentes en JS."
= cadena,/
= expresión regular."\n"
y/\n/
que coincida con las mismas cosas?Ya que está utilizando
textarea
, puede encontrar \ n o \ r (o \ r \ n) para los saltos de línea. Entonces, se sugiere lo siguiente:$('#keywords').val().split(/\r|\n/)
ref: comprueba si la cadena contiene un salto de línea
fuente
/\r?\n/
... creo que usar|
(o) intercalaría resultados vacíos para las terminaciones de línea CRLF.\r
) en ningún lugar de la web moderna. El último lugar donde se utilizaron ampliamente fue en versiones antiguas de Mac OS de hace casi 20 años.Sólo
var ks = $('#keywords').val().split(/\r\n|\n|\r/);
funcionará perfectamente.
Asegúrese de que
\r\n
se coloque al principio de la cadena RegExp , ya que se intentará primero.fuente
g
al final de la expresión regular no es necesarioLa forma más sencilla y segura de dividir una cadena utilizando nuevas líneas, independientemente del formato (CRLF, LFCR o LF), es eliminar todos los caracteres de retorno de carro y luego dividir en los caracteres de la nueva línea .
"text".replace(/\r/g, "").split(/\n/);
Esto asegura que cuando se tiene nuevas líneas continuas (es decir
\r\n\r\n
,\n\r\n\r
o\n\n
) el resultado será siempre el mismo.En su caso, el código se vería así:
A continuación, se muestran algunos ejemplos que muestran la importancia de este método:
fuente
var ks = $('#keywords').val().split("\n");
interior del controlador de eventosalert(ks[k])
lugar dealert(k)
Manifestación
fuente
Good'ol javascript:
fuente
El problema es que cuando inicializa
ks
,value
no se ha configurado.Usted tendrá que obtener el valor cuando el usuario envía el formulario. Entonces necesitas inicializar el
ks
interior de la función de devolución de llamadafuente
Aquí hay un ejemplo con en
console.log
lugar dealert()
. Es mas conveniente :)Puedes probarlo aqui
fuente
fuente