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 saisi des valeurs valides et non des valeurs amusantes comme suit
1234,
987l;
Pour cela, j'ai besoin de lire ligne par ligne de zone de texte et de valider cela. Comment lire ligne par ligne d'une zone de texte en utilisant javascript?
javascript
jquery
html
textarea
Saurabh Kumar
la source
la source
Réponses:
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 }
la source
$('textarea').val()
utilisezdocument.getElementById('textareaId').innerHTML
c'est tout.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
la source
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., comme vous le souhaitez.var lines = []; $('#my_textarea_selector').val().split("\n").each(function () { if (parseInt($(this) != 'NaN') lines[] = parseInt($(this)); }
la source
parseInt(this, 10)
). Sinon, les zéros non significatifs conduisent à une interprétation en base 8 (octal), ce qui peut conduire à un comportement assez étrange ...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 boucle d'échantillonnage est
lines.forEach(function(line) { console.log('Line is ' + line) })
la source
Une simple regex devrait être efficace pour vérifier votre zone de texte:
/\s*\d+\s*\n/g.test(text) ? "OK" : "KO"
la source