Javascript comment fractionner newline

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"] 
  1. Déplacer le var ks = $('#keywords').val().split("\n"); à l’intérieur du gestionnaire d’événements
  2. Utilisez l’ 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