kindeditor添加字節計算方法,解決中文字節數問題

前情提要:項目中使用kindeditor作富文本編輯器,可是中文在數據庫中佔用3個字節,英文是1個字節,而p標籤換行標籤也各自佔用對應的代碼長度字節.html

kindeditor版本 @version 4.1.2 (2012-07-21)數據庫

頁面使用如下代碼計數編輯器

js:this

afterChange : function() {K('.word_count').html(this.count());}

 html:spa

<p>您當前輸入了 <span class="word_count">0</span> 個文字。</p>

問題:因爲kindeditor自帶的計數器是按照字符來計算的,因此呢,若是按照它提供的字符數提交到數據庫code

因此Google以後.找到一個過濾字符Unicode來計數的方式,略加修改,添加到kindeditor.js的count(位於5111行)方法後面,取名countCode.  htm

countCode : function() {
	var self = this,
	total = 0,
        i,
        str = _removeBookmarkTag(_removeTempTag(self.html())),
        len;
	for(i = 0, len = str.length; i < len; i++){
            charCode = str.charCodeAt(i);
            if(charCode <= 0x007f) {
                total += 1;
            }else if(charCode <= 0x07ff){
                total += 2;
            }else if(charCode <= 0xffff){
                total += 3;
            }else{
                total += 4;
            }
        }
	return total;
	},

相應的頁面要調用的js也要修改.

afterChange : function() {K('.word_count').html(this.countCode());}

 過後添加:rem

修改kindeditor-min.js富文本編輯器

搜索"count:"在其後添加it

countCode:function(){var a=0,i,b=V(ab(this.html())),c;for(i=0,c=b.length;i<c;i++){d=b.charCodeAt(i);if(d<=0x007f){a+=1;}else if(d<=0x07ff){a+=2;}else if(d<=0xffff){a+=3;}else{a+=4;}}return a;},
這樣你就能夠再頁面使用kindeditor-min.js啦.
相關文章
相關標籤/搜索