0

テキストエリアの現在の行のスペース数をカウントするにはどうすればよいですか

asdf
   asdf
asdf

カーソルが2行目で現在の場合、結果は次のようになります。3

4

2 に答える 2

0

コードは次のとおりです。

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

于 2013-02-19T02:59:42.490 に答える
0

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

http://jsfiddle.net/2qfHn/

于 2013-02-19T01:54:41.290 に答える