JSは文字列のバイト長を取得します.


javascriptでは、1文字と数字は1バイトを占め、中国語は2バイトを占めています.テストしてもいいです.
console.log('abcd1234'.length);//8
console.log('    '.length);//4
したがって、文字列のバイト長を計算するには、中国語かどうかの区別が必要です.
私が思い付いたのは二つの方法があります.
  1、中国語を2つの英語の文字で置換します.例えば「*」で置換して、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;
}