Tengo un área de texto donde cada línea contiene un valor entero como sigue
1234
4321
123445
Quiero verificar si el usuario realmente ha introducido valores válidos y no algunos valores divertidos como sigue
1234,
987l;
Para eso, necesito leer línea por línea del área de texto y validar eso. ¿Cómo puedo leer línea por línea de un área de texto usando javascript?
javascript
jquery
html
textarea
Saurabh Kumar
fuente
fuente

Respuestas:
Prueba esto.
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 }fuente
$('textarea').val()usar,document.getElementById('textareaId').innerHTMLeso es todo.Esto funciona sin necesidad 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 linefuente
Esto le daría todos los valores numéricos válidos en formato
lines. Puede cambiar el bucle para validar, eliminar los caracteres no válidos, etc., lo que desee.var lines = []; $('#my_textarea_selector').val().split("\n").each(function () { if (parseInt($(this) != 'NaN') lines[] = parseInt($(this)); }fuente
parseInt(this, 10)). De lo contrario, los ceros iniciales conducen a la interpretación como base 8 (octal), lo que puede llevar a un comportamiento bastante extraño ...Dos opciones: no se requiere JQuery o la versión de JQuery
Sin JQuery (o cualquier otra cosa requerida)
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]) }Versión de 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]) }Nota al margen, si lo prefiere, cada bucle de muestra es
lines.forEach(function(line) { console.log('Line is ' + line) })fuente
Una simple expresión regular debería ser eficiente para verificar su área de texto:
/\s*\d+\s*\n/g.test(text) ? "OK" : "KO"fuente