Je suis jquery, et j’ai une zone de texte, alors quand je soumets un bouton, je vais alerter chaque texte séparé par une nouvelle ligne. Comment se séparer de newline?
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)
Essayez d’initialiser la variable ks
dans votre fonction de soumission.
(function($){ $(document).ready(function(){ $('#data').submit(function(e){ var ks = $('#keywords').val().split("\n"); e.preventDefault(); alert(ks[0]); $.each(ks, function(k){ alert(k); }); }); }); })(jQuery);
CA devrait etre
yadayada.val.split(/\n/)
vous passez une chaîne littérale à la commande split, pas une regex.
Comme 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/)
ref: vérifie si la chaîne contient un saut de ligne
Vous devez parsingr les nouvelles lignes indépendamment de la plate-forme (système d’exploitation). Cette division avec une expression régulière est universelle, vous pouvez envisager de l’utiliser.
var ks = $('#keywords').val().split(/\r?\n/);
Par exemple
"a\nb\r\nc\r\nlala".split(/\r?\n/) // ["a", "b", "c", "lala"]
var ks = $('#keywords').val().split("\n");
à l’intérieur du gestionnaire d’événements alert(ks[k])
au lieu de l’ alert(k)
(function($){ $(document).ready(function(){ $('#data').submit(function(e){ e.preventDefault(); var ks = $('#keywords').val().split("\n"); alert(ks[0]); $.each(ks, function(k){ alert(ks[k]); }); }); }); })(jQuery);
Démo
Juste
var ks = $('#keywords').val().split(/\r\n|\n|\r/);
travaillera parfaitement
Assurez-vous que \r\n
est placé en tête de la chaîne RegExp , car il sera essayé en premier.
Le problème est que lorsque vous initialisez ks
, la value
n’a pas été définie.
Vous devez récupérer la valeur lorsque l’utilisateur soumet le formulaire. Donc, vous devez initialiser les ks
dans la fonction de rappel
(function($){ $(document).ready(function(){ $('#data').submit(function(e){ //Here it will fetch the value of #keywords var ks = $('#keywords').val().split("\n"); ... }); }); })(jQuery);
Good’ol javascript:
var m = "Hello World"; var k = m.split(' '); // I have used space, you can use any thing. for(i=0;i
Voici un exemple avec console.log
au lieu de alert()
. Il est plus commode 🙂
var parse = function(){ var str = $('textarea').val(); var results = str.split("\n"); $.each(results, function(index, element){ console.log(element); }); }; $(function(){ $('button').on('click', parse); });
Vous pouvez l’essayer ici