从网上大概的搜了一下关于这个问题的解答
大致有两种解决办法
方法1:
function getBytesCount(str)
{
var bytesCount = 0;
if (str != null)
{
for (var i = 0; i < str.length; i++)
{
var c = str.charAt(i);
if (/^[/u0000-/u00ff]$/.test(c))
{
bytesCount += 1;
}
else
{
bytesCount += 2;
}
}
}
return bytesCount;
方法2:
function getBytesCount2(str)
{
if (str == null)
{
return 0;
}
else
{
return (str.length + str.replace(/[/u0000-/u00ff]/g, "").length);
}
}
当然,同方法二一样的还有一种写法
<script language=javascript>
String.prototype.lenB = function(){return this.replace(/[^/x00-/xff]/g,"**").length;}
var str = "这是一个可以将汉字计算成两个字节的函数";
alert("老的算法 = " + str.length);
alert("新的算法 = " + str.lenB());
</script>