web-dev-qa-db-fra.com

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 défini des valeurs valides et non des valeurs amusantes comme suit

      1234,
      987l;

Pour cela, je dois lire ligne par ligne de zone de texte et le valider. Comment puis-je lire ligne par ligne une zone de texte à l'aide de javascript?

70
Saurabh Kumar

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
}
151
ShankarSangoli

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
32
Paul Brewczynski

Cela vous donnerait toutes les valeurs numériques valides dans lines. Vous pouvez modifier la boucle pour valider, supprimer les caractères non valides, etc., selon votre choix.

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

Une simple expression rationnelle devrait être efficace pour vérifier votre texte:

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

Deux options: pas de JQuery requis, ni de version de 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 exemple de boucle est

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