【JavaScript】英数字の全角半角変換



はじめに

英数字の半角全角変換です。ASCII文字の印字可能文字を一括で変換します。

半角文字

0123456789ABCDEF
U+0020!"#$%&'()*+,-./
U+00300123456789:;<=>?
U+0040@ABCDEFGHIJKLMNO
U+0050PQRSTUVWXYZ[\]^_
U+0060`abcdefghijklmno
U+0070pqrstuvwxyz{``}~

※U+0020, U+007Fは、対象外

全角文字

0123456789ABCDEF
U+FF00
U+FF10
U+FF20
U+FF30_
U+FF40
U+FF50

※U+FF00, U+FF5Fは、対象外

ソースコード

// 全角→半角変換
const toHalfWidth = str => {
  return str.replace(/[\uFF01-\uFF5E]/g, ch => {
    return String.fromCharCode(ch.charCodeAt(0) - 0xFEE0);
  });
};

// 半角→全角変換
const toFullWidth = str => {
  return str.replace(/[\u0021-\u007E]/g, ch => {
    return String.fromCharCode(ch.charCodeAt(0) + 0xFEE0);
  });
};

補足

次の文字は変換しません。

  • スペース
  • カタカナ
  • ¥マーク