#全角文字を半角文字に変換
全角文字の文字コードから65248個前の文字コードが半角文字になるようです。
、
と
(全角スペース)の65248個前に変換すると違う文字になってしまうのでif
で判断し返しています。
.js
const FULL_STR = 'ABCabc123()、 '
// ↑ 全角スペース
const conversion = (str) => {
// ↓ 全角スペース
str.replace(/[A-Za-z0-9 () 、 ]/g, (c) => {
if (c === '、') { return ',' }
if (c === ' ') { return ' ' }
return String.fromCharCode(c.charCodeAt(0) - 65248)
})
return str
}
const HALF_STR = conversion(FULL_STR)
console.log(HALF_STR)
+ 65248
にすれば半角文字を全角文字に変換することもできます。
感想
文字コード難しい。
JavaScriptの綺麗な書き方がわからない。もっと書くぞ!