Note: この記事は、3年以上前に書かれています。Webの進化は速い!情報の正確性は自己責任で判断してください。
あると便利だな~、と思って作ってみたもの。
純粋に文字数としてカウントしてます。基本は物書き用。
memo: 半角も全角も等しく1文字でカウント。改行はカウントしない仕様になってます。
ソース
var target = document.testForm.text;function Check(obj) {var text = obj.valuetext = escape(text);text = text.replace(/%0D/g,'');text = text.replace(/%0A/g,'');text = unescape(text);var num = text.length;document.testForm.counter.value = num || 0;}target.onkeydown = function(){ Check(target) };target.onkeyup = function(){ Check(target) };
重要なのは9行目だけ。5~8行目は改行を削除してます。何故かっていうと、改行コードを何文字とするかどうかはブラウザによって違うから。
Update: 2007.12.12
ホッテントリにid:ma.laの文字カウントツールが載ってた。触発されて微修正。
function $(id){return document.getElementById(id);}function Check(obj) {var text = obj.valuetext = text.replace(/\r|\n/g, '');var num = text.length;$("count").value = num;}var target = $("text");target.onkeydown = function(){ Check(target) };target.onkeyup = function(){ Check(target) };
$()関数が prototype.js っぽくて面白い。
Note: スパム対策が面倒なので、コメント投稿を廃止しました。以前のコメントは残します。
ご意見・ご要望はtwitter@sigwygかはてブコメントにて。