input入力値の扱いについて

この記事を読むのにかかる時間 1未満

概要

コード

入力のバリデーション

let value = e.target.value; //input内の値を一度value変数に代入

value = value.replace(/,/g, ""); //カンマを除去する

value = value.replace(/[^0-9]/g, ""); //数字以外を除去する。^は以外を意味する

value = Number(value).toLocaleString("ja-JP"); //日本語の3桁カンマ区切り表記に変換

value = value.replace(/[0-9]/g, s => //全角数字を半角化。/[0 - 9]/gは全角数字を探す
  String.fromCharCode(s.charCodeAt(0) - 0xFEE0) //Unicodeの数値で全角→半角に切り替える。最後に文字に戻す
);

e.target.value = value; //最後に、input内に値を返す

文字列の数値化

 const amount = parseInt(amountInput, 10); //文字列を10進数に変換

const rate = parseFloat(rateInput); //文字列を小数点を含む数値化

文字列のチェック

if (!Number.isInteger(rate)) {・・・} //rateが整数でない場合の処理