106 votes

Comment lire ligne par ligne une balise HTML de zone de texte

J'ai une zone de texte où chaque ligne contient une valeur entière comme suit

       1234
      4321
     123445

Je veux vérifier si l'utilisateur a vraiment entré des valeurs valides et non des valeurs amusantes comme suit

       1234,
      987l;

Pour cela, je dois lire ligne par ligne de la zone de texte et valider cela. Comment lire ligne par ligne une zone de texte en utilisant javascript ?

196voto

ShankarSangoli Points 45345

Essaye ça.

 var lines = $('textarea').val().split('\n');
for(var i = 0;i < lines.length;i++){
    //code here using lines[i] which will give you each line
}

44voto

bluesm Points 483

Cela fonctionne sans avoir besoin de jQuery :

 var textArea = document.getElementById("my-text-area");
var arrayOfLines = textArea.value.split("\n"); // arrayOfLines is array where every element is string of one line

6voto

Lee Whitney Points 3570

Deux options : pas de JQuery requis, ou version JQuery

Pas de JQuery (ou quoi que ce soit d'autre requis)

 var textArea = document.getElementById('myTextAreaId');
var lines = textArea.value.split('\n');    // lines is an array of strings

// Loop through all lines
for (var j = 0; j < lines.length; j++) {
  console.log('Line ' + j + ' is ' + lines[j])
}

Version JQuery

 var lines = $('#myTextAreaId').val().split('\n');   // lines is an array of strings

// Loop through all lines
for (var j = 0; j < lines.length; j++) {
  console.log('Line ' + j + ' is ' + lines[j])
}

Note latérale, si vous préférez pourChaque une boucle d'échantillon est

 lines.forEach(function(line) {
  console.log('Line is ' + line)
})

5voto

Joe Points 10301

Cela vous donnerait toutes les valeurs numériques valides en lines . Vous pouvez modifier la boucle pour valider, supprimer les caractères invalides, etc. - comme vous le souhaitez.

 var lines = [];
$('#my_textarea_selector').val().split("\n").each(function ()
{
    if (parseInt($(this) != 'NaN')
        lines[] = parseInt($(this));
}

4voto

sinsedrix Points 1307

Une simple expression régulière devrait être efficace pour vérifier votre zone de texte :

 /\s*\d+\s*\n/g.test(text) ? "OK" : "KO"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X