js检测字符串的字节数

时间:2021-07-10 11:04:34

在js中字符串可以存放数字,字母或者汉字,但是又一个问题就是,数字和字母都是占一个字节,而一个汉字占2个字节。如果在一个字符串中既有字母又有汉字怎么判断字节数呢

第一种简单粗暴

var str = '我们ss'
alert(str.replace(
/[^\u0000-\u00ff]/g,"aa").length);
/[^\u0000-\u00ff]/g 这个正则表达式是用于比配汉字用的,如果是汉字就替换成 aa ,这样就可以实现把所有汉字替换成字母,再去检测长度就可以得到所占的字节数了。

网上还有一种
var str='我我我';
var bytesCount;
for (var i = 0; i < str.length; i++)
{
var c = str.charAt(i);
if (/^[\u0000-\u00ff]$/.test(c)) //匹配双字节
{
bytesCount
+= 1;
}
else
{
bytesCount
+= 2;
}
}
alert(bytesCount);

但是我打印出来是 NaN ,我觉得还是第一种方法好用