各行に次のような整数値が含まれるテキスト領域があります
1234
4321
123445
ユーザーが本当に有効な値を入力しているかどうかを確認したいのですが、次のような面白い値ではありません
1234,
987l;
そのためには、テキスト領域を1行ずつ読み、それを検証する必要があります。javascriptを使用してテキスト領域を1行ずつ読み取るにはどうすればよいですか?
各行に次のような整数値が含まれるテキスト領域があります
1234
4321
123445
ユーザーが本当に有効な値を入力しているかどうかを確認したいのですが、次のような面白い値ではありません
1234,
987l;
そのためには、テキスト領域を1行ずつ読み、それを検証する必要があります。javascriptを使用してテキスト領域を1行ずつ読み取るにはどうすればよいですか?
回答:
これを試して。
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
}
$('textarea').val()
する代わりにdocument.getElementById('textareaId').innerHTML
それだけです。
これは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
これにより、のすべての有効な数値が得られますlines
。ループを変更して、検証したり、無効な文字を削除したりすることができます。
var lines = [];
$('#my_textarea_selector').val().split("\n").each(function ()
{
if (parseInt($(this) != 'NaN')
lines[] = parseInt($(this));
}
parseInt(this, 10)
)として強制的に読み取る必要があります。それ以外の場合、先行ゼロは基数8(8進数)としての解釈につながり、かなり奇妙な動作につながる可能性があります...
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])
}
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])
}
サイドノート、forEachを好む場合、サンプルループは
lines.forEach(function(line) {
console.log('Line is ' + line)
})