Hatena::ブログ(Diary)

Rewish@hatena RSSフィード

新しいことに挑戦したときの記録を、メモ代わりに書いています。

まとまった記事はRewishに、おやつ及びただの日記は3時のおやつ日記に投稿します。

2010-04-27

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)}))

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証