Mam obszar tekstowy, w którym każda linia zawiera wartość całkowitą, jak poniżej
1234
4321
123445
Chcę sprawdzić, czy użytkownik naprawdę wprowadził prawidłowe wartości, a nie jakieś zabawne wartości, takie jak poniżej
1234,
987l;
W tym celu muszę przeczytać wiersz po wierszu obszaru tekstowego i potwierdzić to. Jak czytać wiersz po wierszu w obszarze tekstowym za pomocą JavaScript?
javascript
jquery
html
textarea
Saurabh Kumar
źródło
źródło
Odpowiedzi:
Spróbuj tego.
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 }
źródło
$('textarea').val()
użyjdocument.getElementById('textareaId').innerHTML
tego.Działa to bez potrzeby 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
źródło
Dałoby to wszystkie prawidłowe wartości liczbowe w
lines
. Możesz zmienić pętlę, aby sprawdzić poprawność, usunąć nieprawidłowe znaki itp. - cokolwiek chcesz.var lines = []; $('#my_textarea_selector').val().split("\n").each(function () { if (parseInt($(this) != 'NaN') lines[] = parseInt($(this)); }
źródło
parseInt(this, 10)
). W przeciwnym razie wiodące zera prowadzą do interpretacji jako podstawa 8 (ósemkowa), co może prowadzić do dość dziwnego zachowania ...Dwie opcje: nie jest wymagana wersja JQuery lub wersja JQuery
Brak JQuery (lub cokolwiek innego jest wymagane)
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]) }
Wersja 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]) }
Uwaga dodatkowa, jeśli wolisz forEach pętla sampli jest
lines.forEach(function(line) { console.log('Line is ' + line) })
źródło
Proste wyrażenie regularne powinno być skuteczne, aby sprawdzić obszar tekstu:
/\s*\d+\s*\n/g.test(text) ? "OK" : "KO"
źródło