2017-05-19 11 views
0

は、ここで私は、例えば上でユーザーが入力した行の数をカウントしたい私の複数行のエディットボックス複数行編集ボックスの行数を数えるには?

<xp:inputTextarea id="taID"></xp:inputTextarea> 

ですボタンをクリックします。 行は改行で区切られます。エディットボックスに最大200Kの行が含まれている可能性があるので、どのような配列でも使用できるかどうかはわかりません。 JavaScriptで数える最も良い方法は何ですか?

+0

可能な複製JavaScriptの文字列の行の](http://stackoverflow.com/questions/8488729/how-to-count-the-number-of-lines-of-a-string-in-javascript) – Canolyb1

+0

私は見る..しかし、私が言ったように。スプリットは200,000アイテムを返すだろう。私はそれが良い解決策ではないと思う。 –

答えて

0

テキストエリアのコンテンツ内のブレークラインの数をカウントします。

function getBreakLines() { 
 
    var content = document.querySelector("#txtarea").value; 
 
    var numberOfLineBreaks = (content.match(/\n/g)||[]).length; 
 
    alert(numberOfLineBreaks); 
 
}
<textarea rows="10" cols="50" id="txtarea"> 
 
dsakjdjsal 
 
dajsldkasjldkas 
 
</textarea> 
 
<br> 
 
<button onclick="getBreakLines()"> 
 
get number of break lines 
 
</button>

だからあなたの場合には#taIDをセレクタを変更します。それは最後の一人としても、1を追加しますので、あなたが総数に1を引くことができることを省略したい場合にように注意してください

+0

クール!!!!!うまく動作し、非常に高速です..ありがとう –

0

あなたは重複が非ブロッキング機能で投稿する拡張することができ:

var somestring="abcdefgh\naghdfgakhsgfasgd"; 
var counted=0; 
(function rec(i){ 
    for(a=Math.min(i+100,somestring.length);++i<a;){ 
    if(somestring[i]==="\n") counted++; 
    } 
    if(i===somestring.length) alert(counted) else setTimeout(rec,0,i+1); 
})(0); 
数をカウントする方法[の