web-dev-qa-db-ja.com

テキストエリアのHTMLタグの行ごとの読み方

各行に次のような整数値が含まれるテキスト領域があります

      1234
      4321
     123445

ユーザーが実際に有効な値を含んでおり、次のような面白い値ではないかどうかを確認したい

      1234,
      987l;

そのためには、テキスト領域を1行ずつ読み取って検証する必要があります。 javascriptを使用してテキスト領域の行ごとに読むにはどうすればよいですか?

70
Saurabh Kumar

これを試して。

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
}
151
ShankarSangoli

これは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
32

これにより、linesのすべての有効な数値が得られます。ループを変更して、検証、無効な文字の削除など、任意の方法を実行できます。

var lines = [];
$('#my_textarea_selector').val().split("\n").each(function ()
{
    if (parseInt($(this) != 'NaN')
        lines[] = parseInt($(this));
}
5
Joe

簡単な正規表現を使用すると、テキストエリアを効率的にチェックできます。

/\s*\d+\s*\n/g.test(text) ? "OK" : "KO"
4
sinsedrix

2つのオプション:JQueryは不要、またはJQueryバージョン

JQuery(またはその他の必要なもの)はありません

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])
}

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])
}

サイドノート、あなたが好むならサンプルループは

lines.forEach(function(line) {
  console.log('Line is ' + line)
})
2
whitneyland