Halfwidth and Fullwidth Forms
#Unicode
Unicodeのうち、全角のASCIIキャラクターおよび半角カナを収録する悪名高いUnicode Block
U+FF01–FF5E が全角ASCII(英数字記号)
U+FF61–FF9F が半角カナ
U+FFA0–FFDC はハングルのなにか よくわからん
U+FFE0–FFEE はごった煮 全角の通貨記号や半角の矢印など
https://en.wikipedia.org/wiki/Halfwidth_and_Fullwidth_Forms_(Unicode_block)
全角英数字記号から素のASCIIへの変換
全角の文字コードから 0xFEE0 を引き算すれば、素のASCIIになります
code:js
input = 'あいうアイウABCABC';
converted = Array.from( input ).map( ( char ) => {
const charCode = char.charCodeAt( 0 );
if ( 0xff01 <= charCode && charCode < 0xff5f ) {
const halfwidthCode = charCode - 0xFEE0;
return String.fromCharCode( halfwidthCode );
}
return char;
} ).join( '' );
console.log( converted ); // 'あいうアイウABCABC'