JavaScriptリファレンス

文字列のバイト数を確認する







文字列のバイト数を確認する


PerlやPHPなどならまったく苦労しないようなことですが、
JavaScriptは文字列処理が非常に難しく、
半角・全角、混在の文字列のbyte数を調べるのはめんどいです。

str="abcあいう";
ue=encodeURI(excerpt);
per=ue.match(/%/g);
len=ue.length-per.length*2;

"abcあいう"←UTF8で「あいう」は各3バイトなので、計12バイトですが、
JavaScriptの文字列関数はすべてbyte単位ではなく文字単位で処理されてしまうので、
バイト数を数えることもバイト単位で取り出すこともできません。
正規表現も文字単位になってしまいます。
で、
まず、encodeURIでURLエンコード。
文字列中のURLとして使えない文字を「%FF」形式に変換します。
全角も変換されます。
"abc%E3%81%82%E3%81%84%E3%81%86"
↑こんな感じになります。
で、正規表現で「%」をgオプションで全部マッチさせる。
gオプションで配列が帰されます。
配列の長さ=「%」の数。
エンコード済みの文字列の長さから「%」の数×2を引けばバイト数が求められます。






[編集] [新規] [削除] [バックアップ] [アップロード] [ログイン] [管理]
whwiki 1.3