行数を調べる


動作ブラウザ 【 IE:4.0  NN:(4.0)
Internet Explorer Netscape Navigator DreamPassport iCab
3.0x 4.0x 4.5 5.0x 5.5 2.0x 3.0x 4.0x 4.x 6.0 2 3 2.x
Windows × - × × × - × -
Macintosh × - × × × - - ×
UNIX - - - - - × × × - - -
Dreamcast - - - - - - - - - - × × -

ポイント n = txt.match(/\r/g); if (n) len = n.length + 1; else len = 1;
説  明 テキストエリアの行数を求めるには改行コードが何個含まれるかを数えます。含まれる個数を調べるには正規表現を使うと簡単にできます。しかし、Win,Macでは改行コードが違っています。Winは0x0D,0x0Aの2バイト(正規表現では\r\n)、Macは0x0Dの1バイト(正規表現では\r)となっています。このような場合は\rが何個含まれるかを調べます。
サンプル <html> <head> <title>行数を調べる</title> <script language="JavaScript"><!-- function check() { txt = document.myFORM.myTEXT.value; n = txt.match(/\r/g); if (n) len = n.length + 1; else len = 1; alert(len+"行です"); } // --></script> </head> <body> <form name="myFORM"> <textarea rows="3" name="myTEXT"></textarea><br> <input type="button" value="Check" onClick="check()"> </form> </body> </html>
補足説明 UNIXの改行コードは0x0Aの1バイト(正規表現では\n)となります。サンプルではn = txt.match(/\n/g);となります。Netscape 6.1では正常に動作しません。

■サンプルスクリプトを実行する >>実行
■各ブラウザでの動作結果を見る >>View!

写真素材 PIXTA