Lengzihaohong

学无止境(专注于DotNet技术)
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

实时统计输入字符数

Posted on 2007-06-09 19:13  神话  阅读(336)  评论(0编辑  收藏  举报

 从QQ空间上抠出来的一段代码,用于实时统计输入字符数

<script>
    
var $E = document.getElementById;
String.prototype.lenB 
= function(){
    
return this.unHtmlReplace().replace(/\*/g," ").replace(/[^\x00-\xff]/g,"**").length;
}

String.prototype.unHtmlReplace 
= function () {
    
var s = (this).replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&nbsp;/g," ").replace(/&quot;/g,"\"");
    return s.replace(/&#(\d{2});/g,function($0,$1) {return unescape(
"%"+parseInt($1).toString(16));});
}
    function onModChange(s, max, o) {    //实时显示输入字数的
    if(document.readyState != 
"complete") {
        s = escape(s);
        setTimeout('onModChange(unescape(
"'+ s+ '"),'+ max+ ',$E("'+ o.id+ '"))', 10);
        return;
    }
    var words=s.lenB();
    if(words > max)
        words = 
"<font color=red>"+ words+ "</font>";
    else
        words = 
"<font color=green>"+ words+ "</font>";
    o.innerHTML = 
"已输入"+ words+ "个字符(最多"+ max+ "个字符)";
}
</script>


<!--S 发表评论-->
<div>
    
<label><span>发表评论:</span>
 
<textarea name="content" id="cmt_content" cols="50" rows="3" onpropertychange="onModChange(this.value, 150, $E('post_status'))"></textarea>
    
</label>
    
<div><em id="post_status">已输入<font color=green>0</font>个字符(最多150个字符)</em></div>
</div>