JavaScriptで全角英数と半角英数の相互変換
全角英数の文字コードから65248個前が半角英数の文字コード。
半角英数の文字コードから65248個後が全角英数の文字コード。
// 半角にしたい str.replace(/[A-Za-z0-9]/g, function(s) { return String.fromCharCode(s.charCodeAt(0) - 65248); }); // 全角にしたい str.replace(/[A-Za-z0-9]/g, function(s) { return String.fromCharCode(s.charCodeAt(0) + 65248); });
65248の部分は16進数で表される事が多い。
// 半角にしたい str.replace(/[A-Za-z0-9]/g, function(s) { return String.fromCharCode(s.charCodeAt(0) - 0xFEE0); }); // 全角にしたい str.replace(/[A-Za-z0-9]/g, function(s) { return String.fromCharCode(s.charCodeAt(0) + 0xFEE0); });
こっちの方が無駄にプロっぽいですね。
サンプルコード
// 半角にしたい javascript:alert('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'.replace(/[A-Za-z0-9]/g,function(s){return String.fromCharCode(s.charCodeAt(0)-0xFEE0)})) // 全角にしたい javascript:alert('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'.replace(/[A-Za-z0-9]/g,function(s){return String.fromCharCode(s.charCodeAt(0)+0xFEE0)}))