求一个字符串的字节长度,字符串有一个方法charCodeAt(); 一个中文占两个字节,一个英文占一个字节,
charCodeAt() 方法可返回指定位置的字符的Unicode编码,这个返回值是0-65535之间的整数。
当返回值<=255时为英文,当返回值>255时为中文
语法
stringObject.charCodeAt(index)
function retByteslen(target){
var count=0;
for(var i=0; i<target.length; i++){
if(target.charCodeAt(i) <=255){ count +=1;}
else{count +=2; }
}
console.log(count);
}
retByteslen("very good"); //9
retByteslen("伟大的中国"); //10
一般都会这么写,但是还有一种方法,
一般字符串中 除了英文(含空格),就是中文,如果字符串都是英文,那这个字符串的长度,和字节长度就一样了(所以可以开始的时候,count 的初始值设置为字符串的长度),如果字符串里边有中文文字,那么 有几个文字,就在原来字符串的长度上 加几,最后得到的结果,也就是我们需要的那个数字了
function retByteslen(target){
var count=target.length;
for(var i=0; i<target.length; i++){
if(target.charCodeAt(i) >255){ count +=1; }
}
console.log(count);
}