Eu tenho uma área de texto onde cada linha contém um valor inteiro como segue
1234
4321
123445
Quero verificar se o usuário realmente inseriu valores válidos e não alguns valores engraçados como a seguir
1234,
987l;
Para isso, preciso ler linha por linha da área de texto e validar isso. Como posso ler linha por linha de uma área de texto usando javascript?
javascript
jquery
html
textarea
Saurabh Kumar
fonte
fonte
Respostas:
Experimente isso.
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 }
fonte
$('textarea').val()
usedocument.getElementById('textareaId').innerHTML
é isso.Isso funciona sem a necessidade 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
fonte
Isso forneceria todos os valores numéricos válidos em
lines
. Você pode alterar o loop para validar, remover caracteres inválidos, etc. - o que você quiser.var lines = []; $('#my_textarea_selector').val().split("\n").each(function () { if (parseInt($(this) != 'NaN') lines[] = parseInt($(this)); }
fonte
parseInt(this, 10)
). Caso contrário, zeros à esquerda levam à interpretação como base 8 (octal), o que pode levar a algum comportamento bastante estranho ...Duas opções: sem necessidade de JQuery ou versão JQuery
Sem JQuery (ou qualquer outra coisa necessária)
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]) }
Versão 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 lateral, se você preferir para; cada loop de amostra é
lines.forEach(function(line) { console.log('Line is ' + line) })
fonte
Um regex simples deve ser eficiente para verificar sua textarea:
/\s*\d+\s*\n/g.test(text) ? "OK" : "KO"
fonte