四位数后,我的输入字段将自动清除

时间:2019-06-21 09:33:42

标签: html

我正在尝试将整数转换为印度货币,并将它们返回到相同的输入标签,但是对于四位数,它工作得很好,此后,当我输入第五位数时,它再次从第五位数开始。请帮帮我。我是StackOverflow的新手。

function currency(element) {
            let ele = document.getElementById(element.id);
            let num = ele.value
            let number = (parseInt(num))||0;
            console.log(number.toLocaleString('en-IN'));
            var int = number.toLocaleString('en-IN');
            document.getElementById(element.id).value = int.toString();
        }

它为1,234提供输出1234 但是当我输入12345时,它会将1返回到输入标签

1 个答案:

答案 0 :(得分:1)

键入1234后,您的函数会将<input>的值更改为1,234。但是,当您键入5时,您的函数会尝试从1,2345中读取一个整数。逗号不是以10为底的有效数字,因此parseInt1step 13 in the parseInt algorithm)处停止解析。您需要先清除<input>的值,然后再将其传递给parseInt

let num = ele.value.replace(/[^\d]/g, ''); // remove all non-digits from num
let number = (parseInt(num))||0;