JS获取一个字符串的字节长度

在javascript中,一个字母和数字占一个字节,中文占两个字节。可以测试一下:


console.log(‘abcd1234‘.length);//8
console.log(‘我的博客‘.length);//4


因此,假如要计算一个字符串的字节长度,就要区分是否是中文。

我想到的有两种方法:

  1、将中文用两个英文字符替换,比如用"**"替换,然后计算str.lenght;

   2、除了中文,其它字符,比如字母,数字,符号等都是属于ascii码,

       所以charCode应该在0-255之间,如果大于255,那么str.length++即可。


代码实现如下:


//方法一
function getBytes(str){
    str = str.replace(/[^\x00-\xff]/g, ‘**‘);//将非ascii码转换为2个ascii码
    return str.length;
}


方法二:


function getBytes(str){
    var bytes= str.length;
    for(var i = bytes; i--;){
        if(str.charCodeAt(i) > 255){
            bytes++;
        }
    }
    return bytes;
}


本文出自 “Qing's web” 博客,请务必保留此出处http://qings.blog.51cto.com/4857138/1388438

JS获取一个字符串的字节长度,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。