Saya memiliki area teks di mana setiap baris berisi nilai Integer seperti berikut
1234
4321
123445
Saya ingin memeriksa apakah pengguna benar-benar memasukkan nilai yang valid dan bukan beberapa nilai lucu seperti berikut
1234,
987l;
Untuk itu saya perlu membaca baris demi baris area teks dan memvalidasinya. Bagaimana saya bisa membaca baris demi baris dari area teks menggunakan javascript?
javascript
jquery
html
textarea
Saurabh Kumar
sumber
sumber
Jawaban:
Coba ini.
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 }
sumber
$('textarea').val()
gunakandocument.getElementById('textareaId').innerHTML
itu saja.Ini berfungsi tanpa membutuhkan 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
sumber
Ini akan memberi Anda semua nilai numerik yang valid di
lines
. Anda dapat mengubah loop untuk memvalidasi, menghapus karakter yang tidak valid, dll - mana pun yang Anda inginkan.var lines = []; $('#my_textarea_selector').val().split("\n").each(function () { if (parseInt($(this) != 'NaN') lines[] = parseInt($(this)); }
sumber
parseInt(this, 10)
). Jika tidak, angka nol di depan mengarah pada interpretasi sebagai basis 8 (oktal), yang dapat menyebabkan beberapa perilaku yang agak aneh ...Dua opsi: tidak diperlukan JQuery, atau versi JQuery
Tidak ada JQuery (atau apa pun yang diperlukan)
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 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]) }
Catatan samping, jika Anda lebih suka forEach loop sampel adalah
lines.forEach(function(line) { console.log('Line is ' + line) })
sumber
Regex sederhana seharusnya efektif untuk memeriksa area teks Anda:
/\s*\d+\s*\n/g.test(text) ? "OK" : "KO"
sumber