テキストエリアの現在の行のスペース数をカウントするにはどうすればよいですか
asdf
asdf
asdf
カーソルが2行目で現在の場合、結果は次のようになります。3
テキストエリアの現在の行のスペース数をカウントするにはどうすればよいですか
asdf
asdf
asdf
カーソルが2行目で現在の場合、結果は次のようになります。3
コードは次のとおりです。
window.onload = function () {
var ta = document.getElementById('ta'); //set your textarea's id
ta.onclick = function (e) {
var lineNo = ta.value.substr(0, ta.selectionStart).split(/\r?\n|\r/).length,
lineText = ta.value.split(/\r?\n|\r/)[lineNo - 1],
numOfSpaces = lineText.split(/\s/).length - 1;
console.log(lineNo, lineText, numOfSpaces);
}
}
これがフィドルです。
注:一部のブラウザでは機能しません。クロスブラウザのサポートについては、この投稿を参照してください。 textarea.selectionStart
textareaの文字列値を分割してから、次のことを行う必要があります。
var textString = //pull data from textarea
var textArray = textString.split("\n");
for(var i=0; i<textArray.length; i++) {
var count = textArray[i].match(/ /g); //regex to get any number of spaces
alert(count.length);
}