我试图将输入限制为十进制数。我希望根本不显示任何无效字符(不显示然后删除)。我已经实现了这个,但是对于整个整数(比如电话号码的输入),但现在我需要将它应用于十进制输入。
样本输入/输出:
default value 25.00 -> type 2b5.00 -> display 25.00
default value 265.50 -> type 2.65.50 -> display 265.50 (as if prevented decimal point from being entered)
default value 265.52 -> type 265.52. -> display 265.52 (same as previous one)
结束新编辑
我发现许多线程处理“十进制输入”问题,但其中几乎 99% 只处理“匹配”和“测试”输入,而我需要替换无效字符。
除了尝试许多正则表达式之外/^\d+(\.\d{0,2})?$/
,我还尝试了类似下面的方法,它只保留输入中的第一次出现。这仍然不是我的要求,因为我需要“原始”小数点保持不是新输入中的第一个小数点。这是它的代码:
[this.value.slice(0, decimalpoint), '.', this.value.slice(decimalpoint)].join('')
这个线程是最接近我需要的,但由于没有回应关于防止多个小数点的最后评论(这是我的要求),它没有用。
任何帮助,将不胜感激。