Итак, я пишу маскированный ввод в vanilla JS, и у меня небольшая ошибка.поэтому в идеале он должен форматировать ввод как валюту, например, ввод 123 будет вести себя так: $ 0,01 ... $ 0,12 ... $ 1,23, но, как сейчас, он ведет себя так же, как и выше, но также включает в себя последнюю напечатанную букву, так что вывод выглядитthis: $ 0.011 ... $ 0.122 ... $ 1.233 есть способ это исправить?чтобы текущий вводимый символ не отображался на входе?
Вот ссылка на codepen, где я работаю над этим: https://codepen.io/kkannen/pen/XxGxmQ?editors=0010
let dollars = "0"
let cents = "00"
let inNum = ""
function dollarsAndCents(num) {
const dol = Math.floor(num/100)
const c = num%100
return[dol, c]
}
input.value = `$${dollars}.${cents}`
function masked(e) {
if(!Number(e.key)){
inNum += null
} else {
inNum += Number(e.key)
if (inNum.length <= 2){
const centsArr = cents.split("")
centsArr.shift()
centsArr.push(e.key)
cents = centsArr.join("")
} else {
[dollars, cents] = dollarsAndCents(inNum)
}
input.value = `$${dollars}.${cents}`
}
}