Note: この記事は、3年以上前に書かれています。Webの進化は速い!情報の正確性は自己責任で判断してください。
あると便利だな~、と思って作ってみたもの。
純粋に文字数としてカウントしてます。基本は物書き用。
memo: 半角も全角も等しく1文字でカウント。改行はカウントしない仕様になってます。
ソース
var target = document.testForm.text;
function Check(obj) {
var text = obj.value
text = 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.value
text = 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かはてブコメントにて。