文字列のバイト数をカウントする
文字数ではなく、バイト数を数える処理です。
文字列を1文字ずつ確認し、1バイト文字の場合は1を足し、2バイト文字の場合は2を足した合計を返します。
- /****************************************************************
- * バイト数を数える
- *
- * 引数 : str 文字列
- * 戻り値: バイト数
- *
- ****************************************************************/
- function CountLength(str) {
- var r = 0;
- for (var i = 0; i < str.length; i++) {
- var c = str.charCodeAt(i);
- // Shift_JIS: 0x0 〜 0x80, 0xa0 , 0xa1 〜 0xdf , 0xfd 〜 0xff
- // Unicode : 0x0 〜 0x80, 0xf8f0, 0xff61 〜 0xff9f, 0xf8f1 〜 0xf8f3
- if ( (c >= 0x0 && c < 0x81) || (c == 0xf8f0) || (c >= 0xff61 && c < 0xffa0) || (c >= 0xf8f1 && c < 0xf8f4)) {
- r += 1;
- } else {
- r += 2;
- }
- }
- return r;
- }