字符串字节长度
一、求字符串字节
var str = 'jg78*笑笑';//只有中文的Unicode编码大于255
function getByteLength(str){
var count = 0;
for(var i = 0;i < str.length;i ++){
if(str.charCodeAt(i) > 255){//charCodeAt返回参数Unicode编码
count +=2;//中文为2Byte
}else{
count ++;//其他为1Byte
}
}
return count;//返回参数字节长度值,也可以直接console输出
}
var res = getByteLength(str);
大家会发现这里代码效率是比较低的,因为我们对中文和非中文进行判断时有两个判断,那么可不可以只用一个判断呢?
function getByteLength(str){
var count = str.length;//首先count等于字符串的长度
for(var i = 0;i < str.length;i ++){
if(str.charCodeAt(i) > 255){//如果Unicode编码大于255为中文
count ++;//在原来基础上没多一个中文就+1
}
}
return count;//返回参数字节长度值,也可以直接console输出
}
这样的话能够提高代码效率,使函数更加容易理解,还能锻炼思维。
博主开始运营自己的公众号啦,感兴趣的可以关注“飞羽逐星”微信公众号哦,拿起手机就能阅读感兴趣的博客啦!