概要
コード
入力のバリデーション
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 が整数でない場合の処理