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;
};
标签:function,字节,GetLength,JS,var,str,字符串
From: https://www.cnblogs.com/xiongzaiqiren/p/17025723.html