js判断字符长度,中文算2个

方法一:

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

方法二:

function strlen(str){  
    var len = 0;  
    for (var i=0; i= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) {   
       len++;   
     }   
     else {   
      len+=2;   
     }   
    }   
    return len;  
}  

方法三:

var jmz = {};  
jmz.GetLength = function(str) {  
    ///获得字符串实际长度,中文2,英文1  
    ///要获得长度的字符串  
    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;  
};  

方法四:

var l = str.length;   
var blen = 0;   
for(i=0; i

方法五:

getBLen = function(str) {
	if (str == null) return 0;
	if (typeof str != "string"){
		str += "";
	}
	return str.replace(/[^\x00-\xff]/g,"01").length;
}
————————————————
版权声明:本文为CSDN博主「微wx笑」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/testcs_dn/article/details/21412303

方法一:使用正则表达式,代码如下:

function getByteLen(val) {
var len = 0;
for (var i = 0; i < val.length; i++) {
var a = val.charAt(i);
if (a.match(/[^\x00-\xff]/ig) != null)
{
len += 2;
}
else
{
len += 1;
}
}
return len;
}

方法二:使用字符unicode判断:方法如下:

function getByteLen(val) {
var len = 0;
for (var i = 0; i < val.length; i++) {
var length = val.charCodeAt(i);
if(length>=0&&length<=128)
{
len += 1;
}
else
{
len += 2;
}
}
return len;
}

你可能感兴趣的:(js)