JavaScriptで全角英数字を半角に変換

Pocket

JavaScriptで全角英数字を半角に変換する方法を考えてみました。

全角英数字は、0から9まで、AからZまで、aからzまで、が該当します。
一方、半角英数字は、0から9まで、AからZまで、aからzまで、が該当します。
これらの文字コードを調べると次の通りです。

全角 コード 半角 コード
65296 0 48
65305 9 57
65313 A 65
65338 Z 90
65345 a 97
65370 z 122

よく見ると、全角と半角のコードの差が全て65248なのです。

function zen2han(str){
  return str.replace(/[0-z]/g,function($0){
    return String.fromCharCode(parseInt($0.charCodeAt(0))-65248);
  });
}

[0-z] で全角の英数字がヒットします。
$0 でヒットした英数字を取得します。
$0.charCodeAt(0) で全角英数字の文字コードを取得します。parseInt で文字列を整数に変換しています。
65248を引くと半角英数字の文字コードが分かります。
String.fromCharCode で文字コードに該当する文字を取得します。

逆に半角英数字を全角にする場合は次のようにします。

function han2zen(str){
     return str.replace(/[0-z]/g,function($0){
         return String.fromCharCode(parseInt($0.charCodeAt(0))+65248);
     });
}

[ 2012年12月13日 | カテゴリー: JavaScript | タグ: , , ]

« | »

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報