JavaScript
0
どのような問題がありますか?

投稿日

javascript で全角英数記号を半角にする

123456 -> 123456 みたいな変換をしたい場合のコード。
style="ime-mode: off" を書いてもchromeだとシカとされる。
そんな場合に input type="tel" を使おう、なんて言う記事も多いけど tel でもないのに tel を使うの気持ち悪いので focus out時とかにフィルター通して正規化しよう、って魂胆。

var filters = filters || (function () {
    const FullWidthStart = 0xff00
    const FullWidthEnd  = 0xff7e;
    const HalfWidthStart = 0x20;

    return {
        toNarrow: function(s){
            let  result = '';
            for(let i = 0; i < s.length; i++){
                
                let c = s.charCodeAt(i);
                if(c < FullWidthStart || FullWidthEnd < c){
                    continue;
                }
                let code = c - FullWidthStart + HalfWidthStart;
                result += String.fromCharCode(code);
            }   
            return result;
        }
    }
})();

let halfStrings = filters.toNarrow('1234567890abcdefghijzABCDEZあいうえお憂鬱な空!”#$%&’()=~');
console.log(halfStrings);
ユーザー登録して、Qiitaをもっと便利に使ってみませんか。
  1. あなたにマッチした記事をお届けします
    ユーザーやタグをフォローすることで、あなたが興味を持つ技術分野の情報をまとめてキャッチアップできます
  2. 便利な情報をあとで効率的に読み返せます
    気に入った記事を「ストック」することで、あとからすぐに検索できます
ユーザー登録ログイン
okadabasso

コメント

この記事にコメントはありません。
あなたもコメントしてみませんか :)
ユーザー登録
すでにアカウントを持っている方はログイン
記事投稿イベント開催中
Claris FileMaker で作った App を JavaScript で拡張したらどうなる?!
~
remote.it を使って○○に接続してみた!
~
0
どのような問題がありますか?
ユーザー登録して、Qiitaをもっと便利に使ってみませんか

この機能を利用するにはログインする必要があります。ログインするとさらに下記の機能が使えます。

  1. ユーザーやタグのフォロー機能であなたにマッチした記事をお届け
  2. ストック機能で便利な情報を後から効率的に読み返せる
ユーザー登録ログイン
ストックするカテゴリー