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').innerHTML
eso 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 line
fuente
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