如何使用正则表达式避免多个小数点

时间:2019-03-18 09:51:27

标签: javascript regex

我有一个文本框,我想在其中限制数字以仅允许小数点后一位。

我使用正则表达式来处理此问题,但是当我尝试提供输入内容时,它是不允许的。

如果我以小数点开头,则允许。

我希望输出为:

1.33
12.33

但是它的作用就像

.33

代码:

  const onlyNums = value.replace(/^\d+(\.\d+)?$/, '');

2 个答案:

答案 0 :(得分:1)

您可以简单地检查Number是否等于输入的值而不是正则表达式,而无需严格的类型检查。用户输入第二个点(或数字以外的其他值)后,将立即返回false

document.getElementById('foo').addEventListener('keyup', e => {
	console.log(Number(e.target.value) == e.target.value);
})
<input id="foo">

答案 1 :(得分:-1)

尝试使用它,替换此正则表达式

/ ^ \ d +(。\ d {1,2})?$ /