获取字符串长度

获取字符串的长度,js length属性只能获取字符串个数。有时候汉字需要被当初两个字符长度处理,方法如下:

String.prototype.getByteLength=function(){
    //x00-\xff 代表非汉字编码 
    //一个汉字代表两个字节,所以那样了,不过应该是 
    return this.replace(/[^\x00-\xff]/g,"rr").length;           
}          

/**
 * n为要结束的下标数字
 * */
String.prototype.subByteLength = function(n) {    
    var r = /[^\x00-\xff]/g;    
    if(this.replace(r, "mm").length <= n) return this;    
    // n = n - 3;    
    var m = Math.floor(n/2);    
    for(var i=m; i<this.length; i++) {    
        if(this.substr(0, i).replace(r, "mm").length>=n) {    
            return this.substr(0, i) +"..."; 
        }    
    } 
    return this;    
}; 

 

posted @ 2014-12-28 20:54  过眼云烟之活在当下  阅读(166)  评论(0)    收藏  举报