I have a text input field that should accept numbers only and show them with comma separators (I am using regex to achieve this). However, I have the following issues:
- When entering a number, upon erasing the number, I get NaN
- When entering letters instead of numbers I get NaN
- When entering a large number (16 charachters number), every subsequent number entered is shown as 0 (for example, when I enter this number 4,543,543,555,555,555 if I add any number, I get 4,543,543,555,555,5550, if I add more numbers I get 4,543,543,555,555,5550000, etc).
Side note: After I get the number with commas (string) I am converting it to a number and I am assigning it to the expenses variable I hold in my state
Here is my code:
expensesValueInput.addEventListener('keyup', (event) => {
const currentValue = (event.target.value).replace(/\,/g, '')
const newValue = Number.parseInt(currentValue, 10).toLocaleString()
event.target.value = newValue
const newValueToNum = parseFloat(newValue.replace(/,/g, ''))
state.expenses = newValueToNum
})