J'utilise jquery et j'ai un textarea. Lorsque je soumets par mon bouton, j'alerterai chaque texte séparé par une nouvelle ligne. Comment diviser mon texte lorsqu'il y a une nouvelle ligne?
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);
exemple d'entrée:
Hello
There
Le résultat que je veux est:
alert(Hello); and
alert(There)
Vous devez analyser les retours à la ligne quelle que soit la plate-forme (système d'exploitation). Cette division est universelle avec les expressions régulières. Vous pouvez envisager d'utiliser ceci:
Par exemple
la source
Ça devrait être
vous passez une chaîne littérale à la commande split, pas à une expression régulière.
la source
"\n"
et/\n/
sont deux choses ENTIEREMENT différentes dans JS."
= chaîne,/
= regex."\n"
et faire/\n/
correspondre les mêmes choses?Puisque vous utilisez
textarea
, vous pouvez trouver \ n ou \ r (ou \ r \ n) pour les sauts de ligne. Donc, ce qui suit est suggéré:$('#keywords').val().split(/\r|\n/)
réf: vérifie si la chaîne contient un saut de ligne
la source
/\r?\n/
... Je pense que l'utilisation de|
(ou) entrelacerait des résultats vides pour les fins de ligne CRLF.\r
) sur le Web moderne. Le dernier endroit où ils ont été largement utilisés était dans les anciennes versions de Mac OS d'il y a près de 20 ans.Juste
var ks = $('#keywords').val().split(/\r\n|\n|\r/);
fonctionnera parfaitement.
Assurez-vous qu'il
\r\n
est placé au début de la chaîne RegExp , car il sera essayé en premier.la source
g
fin de l'expressionLe moyen le plus simple et le plus sûr de fractionner une chaîne à l'aide de nouvelles lignes, quel que soit le format (CRLF, LFCR ou LF), consiste à supprimer tous les caractères de retour chariot , puis à les fractionner sur les caractères de nouvelle ligne .
"text".replace(/\r/g, "").split(/\n/);
Cela garantit que lorsque vous avez de nouvelles lignes continues (c.
\r\n\r\n
-à- d .\n\r\n\r
, Ou\n\n
), le résultat sera toujours le même.Dans votre cas, le code ressemblerait à:
Voici quelques exemples qui illustrent l'importance de cette méthode:
la source
var ks = $('#keywords').val().split("\n");
intérieur du gestionnaire d'événementsalert(ks[k])
place dealert(k)
Démo
la source
Good'ol javascript:
la source
Le problème est que lorsque vous initialisez
ks
, levalue
n'a pas été défini.Vous devez récupérer la valeur lorsque l'utilisateur soumet le formulaire. Vous devez donc initialiser l'
ks
intérieur de la fonction de rappella source
Voici un exemple avec
console.log
au lieu dealert()
. Il est plus commode :)Vous pouvez l'essayer ici
la source
la source