読者です 読者をやめる 読者になる 読者になる

JSで半角→全角変換/日本語はめんどい

よく住所とか登録してくださっていうフォームで、英数字はついつい条件反射的に半角を入力してしまってあとで全角じゃないと駄目だったorz...っていうことがよくあります。
そんなときは簡単なブックマークレット使って自動修正しています。そのブックマークレットの断片を掲載。ひらかな/カタカナの全半角は努力不足なので英数字のみです。

英数字を全角/半角にするコード

String.prototype.toHankakuCase = function()
{
    var i, c, a = [];

    for(i=this.length-1;0<=i;i--)
    {
        c = a[i] = this.charCodeAt(i);
        switch(true)
        {
            case (c <= 0xFF5E && 0xFF21 <= c):
                a[i] -= 0xFEE0;
                break;
            case (c == 0x3000):
                a[i] = 0x0030;
                break;
        };
    };

    return String.fromCharCode.apply(null, a);
};

String.prototype.toZenkakuCase = function()
{
    var i, c, a = [];

    for(i=this.length-1;0<=i;i--)
    {
        c = a[i] = this.charCodeAt(i);
        switch(true)
        {
            case (c <= 0x007E && 0x0021 <= c):
                a[i] += 0xFEE0;
                break;
            case (c == 0x0020):
                a[i] = 0x3000;
                break;
        };
    };

    return String.fromCharCode.apply(null, a);
};
"ABCDEF".toZenkakuCase(); // ABCDEF
"ABCDEF".toHankakuCase(); // ABCDEF