從網上大概的搜了一下關於這個問題的解答
大致有兩種解決辦法
方法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>