JS判断字符串字符长度(中文2字符,英文1字符)

方法1

String.prototype.gblen = function() {    
    var len = 0;    
    for (var i=0; i<this.length; i++) {    
        if (this.charCodeAt(i)>127 || this.charCodeAt(i)==94) {    
             len += 2;    
         } else {    
             len ++;    
         }    
     }    
    return len;    
} 

方法2

function strlen(str){  
    var len = 0;  
    for (var i=0; i<str.length; i++) {   
     var c = str.charCodeAt(i);   
    //单字节加1   
     if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) {   
       len++;   
     }   
     else {   
      len+=2;   
     }   
    }   
    return len;  
}  

方法3

var jmz = {};  
jmz.GetLength = function(str) {  
    ///<summary>获得字符串实际长度,中文2,英文1</summary>  
    ///<param name="str">要获得长度的字符串</param>  
    var realLength = 0, len = str.length, charCode = -1;  
    for (var i = 0; i < len; i++) {  
        charCode = str.charCodeAt(i);  
        if (charCode >= 0 && charCode <= 128) realLength += 1;  
        else realLength += 2;  
    }  
    return realLength;  
};  

方法4

var l = str.length;   
var blen = 0;   
for(i=0; i<l; i++) {   
if ((str.charCodeAt(i) & 0xff00) != 0) {   
blen ++;   
}   
blen ++;   
}  

方法5

把双字节的替换成两个单字节的然后再获得长度

getBLen = function(str) {  
    if (str == null) return 0;  
    if (typeof str != "string"){  
        str += "";  
    }  
    return str.replace(/[^\x00-\xff]/g,"01").length;  
}  
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,248评论 6 13
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,805评论 18 399
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,007评论 25 709
  • 得到APP一个月前上线了一个新专栏《通往财富自由之路》,专栏作者名为李笑来。刚刚上线罗辑思维竟然没有推,足以可见此...
    时间与区间阅读 165评论 0 0
  • 这一年呀 从年初的手术 到年中的一百公里慢跑回复 从年尾的东盟随行翻译 到年底的外研社杯和21世纪杯 收获特别多的...
    晃走可乐的气阅读 213评论 0 0