JS获取字符串长度的常用方法,汉字算两个字节

JS获取字符串实际长度(双字节字符、汉字算两个字符)

//第一种
GetLength = function(str) 
{
    var realLength = 0;
    for (var i = 0; i < str.length; i++) 
    {
        charCode = str.charCodeAt(i);
        if (charCode >= 0 && charCode <= 128) 
		realLength += 1;
        else 
		realLength += 2;
    }
    return realLength;
}
//第二种
GetLength = function(s) 
{
	var len = 0;
	for(var i=0; i<s.length; i++) 
	{
		var c = s.substr(i,1);
		var ts = escape(c);
		if(ts.substring(0,2) == "%u") 
		{
			len+=2;
		} else 
		{
			len+=1;
		}
	}
	return len;
}

第三种:使用字符unicode判断:

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

第四种,更简洁的

//第四种(采取将双字节字符替换成"aa"的做法,取长度)
GetLength = function(str) 
{
    return str.replace(/[^\x00-\xff]/g,"aa").length;
}; 
posted @ 2023-01-04 18:32  熊仔其人  阅读(3497)  评论(0编辑  收藏  举报