[JavaScript] 全角英数字記号を半角に変換する方法

#デモ

インプットに入力した全角英数字記号を半角に変換するデモ。
デモはこちら

#方法

#コード

function zenkaku2hankaku(val) {  
  var regex = /[A-Za-z0-9!"#$%&'()*+,-./:;<=>?@[\]^_`{|}]/g;

  // 全角を半角の文字に置換
  val = val.replace(regex, function(s) {
    return String.fromCharCode(s.charCodeAt(0) - 0xFEE0);
  })
  .replace(/[‐-―]/g, '-') // ハイフンなど
  .replace(/[~〜]/g, '~')  // チルダ
  .replace(/ /g, ' ');  // スペース

  return val;
}

#仕様

以下の全角文字をコードに従って半角に置き換える。

  • A-Z
  • a-z
  • 0-9
  • !"#$%&'()*+,-./:;<=>?@[\]^_`{|}

以下をそれぞれに置換。

  • ‐-―
    →「-」
  • ~〜
    →「~」
  •  (スペース)
    →「 」
twitterfacebookhatenafacebook