例如
var s="中"
alert(s.length)
結果會顯示 1
那麼你若想要判斷 byte 的長度怎麼辦? (因為有時資料庫長度限制需求)
這裡有個網路上網友提供的好方法,速度快,又不用 regular express 或 encodeURIComponent
function byteLength(str) {
// returns the byte length of an utf8 string
var s = str.length;
for (var i=str.length-1; i>=0; i--) {
var code = str.charCodeAt(i);
if (code > 0x7f && code <= 0x7ff) s++;
else if (code > 0x7ff && code <= 0xffff) s+=2;
if (code >= 0xDC00 && code <= 0xDFFF) i--; //trail surrogate
}
return s;
}
var s = "abc中文"
alert(s.length)
alert(byteLength(s))
第一個 alert 是 5,
第一個 alert 是 9,
沒有留言:
張貼留言