js字符串长度计算(一个汉字==两个字符)和字符串截取

js字符串长度计算(一个汉字==两个字符)和字符串截取

 

String.prototype.realLength = function() {
    return this.replace(/[^\x00-\xff]/g, "**").length; // [^\x00-\xff] - 匹配非双字节的字符 
};
String.prototype.realSubstring = function(n){
    var str = this||'';
    if(this.realLength()<=n){return this;}
    var m=Math.floor(n/2);
    for(var i=m;i<this.length;i++){
        if(this.substr(0,i).realLength()>=n){
            return this.substr(0,i)+"...";
        }
    }
    return this;
}

 "这是一个abcd测试".realLength(); //16

 "这是一个abcd测试".realSubstring(8); //"这是一个"

 "这是一个abcd测试".realSubstring(9); //"这是一个a"

 "这是一个abcd测试".realSubstring(7); //"这是一个"

 

 

本文原创,转载保留网址!http://www.cnblogs.com/cssfirefly/p/3768437.html 

 

posted @ 2014-06-04 18:01  cssfirefly  阅读(2188)  评论(0编辑  收藏  举报
foot