文字数カウントフォーム

/web/tool

Note: この記事は、3年以上前に書かれています。Webの進化は速い!情報の正確性は自己責任で判断してください。

あると便利だな~、と思って作ってみたもの。
純粋に文字数としてカウントしてます。基本は物書き用。

memo: 半角も全角も等しく1文字でカウント。改行はカウントしない仕様になってます。

ソース

  1. var target = document.testForm.text;
  2.  
  3. function Check(obj) {
  4. var text = obj.value
  5. text = escape(text);
  6. text = text.replace(/%0D/g,'');
  7. text = text.replace(/%0A/g,'');
  8. text = unescape(text);
  9. var num = text.length;
  10.  
  11. document.testForm.counter.value = num || 0;
  12. }
  13.  
  14. target.onkeydown = function(){ Check(target) };
  15. target.onkeyup = function(){ Check(target) };

重要なのは9行目だけ。5~8行目は改行を削除してます。何故かっていうと、改行コードを何文字とするかどうかはブラウザによって違うから。

Update: 2007.12.12

ホッテントリにid:ma.laの文字カウントツールが載ってた。触発されて微修正。

  1. function $(id){
  2. return document.getElementById(id);
  3. }
  4.  
  5. function Check(obj) {
  6. var text = obj.value
  7. text = text.replace(/\r|\n/g, '');
  8. var num = text.length;
  9.  
  10. $("count").value = num;
  11. }
  12.  
  13. var target = $("text");
  14. target.onkeydown = function(){ Check(target) };
  15. target.onkeyup = function(){ Check(target) };

$()関数が prototype.js っぽくて面白い。

Note: スパム対策が面倒なので、コメント投稿を廃止しました。以前のコメントは残します。
ご意見・ご要望はtwitter@sigwygかはてブコメントにて。