js实现文本框只能输入数字包括负数和小数
时间: 2023-03-19 16:25:15 浏览: 68
您可以使用JavaScript监听文本框输入的内容,并在用户输入时验证其是否为数字,包括负数和小数。以下是一种实现方式:
```html
<input type="text" id="myInput">
<script>
const input = document.getElementById('myInput');
input.addEventListener('input', function(event) {
const value = event.target.value.trim();
// 用正则表达式验证是否为数字
if (/^-?\d*\.?\d*$/.test(value)) {
// 如果是数字,则更新文本框的值
input.value = value;
} else {
// 如果不是数字,则移除非数字字符并更新文本框的值
input.value = value.replace(/[^\d.-]/g, '');
}
});
</script>
```
上面的代码使用`addEventListener()`方法监听文本框的`input`事件。每次用户在文本框中输入内容时,`event.target.value`会获取文本框中的值。我们使用正则表达式`/^-?\d*\.?\d*$/`验证该值是否为数字。如果是数字,则更新文本框的值为该值;否则,使用`replace()`方法移除非数字字符,并更新文本框的值。其中,正则表达式`/[^\d.-]/g`匹配除数字、负号和小数点以外的所有字符,并使用空字符串替换。