js获取字符串实际长度

charCodeAt()返回指定位置的字符的Unicode编码,返回值是0-65535;

charAt()返回指定位置的字符子串;

String.prototype.gblen=function(){

  var len=0;

  var codeCount=this.length;//this指向调用gblen方法的对象

  for(var i=0;i<codeCount;i++){

    if(this.charCodeAt(i)>127 || this.charCodeAt(i)==94){

      len+=2;

    }else{

      len++;

    }

  }

  return len;

}

'wang家lei'.gblen();

 

String.prototype.gbsub=function(len){//返回一定长度的字符串
                var count=this.length;
                var _len=0;
                var _str="";
                for(var i=0;i<count;i++){
                    if(this.charCodeAt(i)>127 || this.charCodeAt(i)==94){
                        _len+=2;
                    }else{
                        _len++;
                    }
                    _str+=this.charAt(i);
                    if(_len>len){
                        i=count;
                    }
                }
                return _str+'...';
            }

 

posted @ 2015-11-30 16:28  wjl910  阅读(137)  评论(0)    收藏  举报