JavaScript 控制input 中只能输入 数字跟小数点且只能保留小数点后两位
时间: 2024-09-09 22:11:49 浏览: 155
在JavaScript中,你可以使用正则表达式结合`pattern`属性来限制`<input>`元素的内容。你想让用户输入的是整数或带有一位小数,可以设置这样的规则:
```html
<input type="text" id="numeric-input" pattern="\d+(\.\d{1})?" inputmode="decimal">
```
这里解释一下正则表达式:
- `\d+`:匹配一串数字(等同于[0-9]+),表示可以输入任意长度的整数部分。
- `(\.\d{1})?`:`\.` 表示匹配小数点,`\d{1}` 匹配一位数字,放在括号里并加上问号`?`表示这部分是可选的,即允许输入小数点后仅一位数字。
`inputmode="decimal"` 是为了启用键盘的小数点键,使其默认显示为数字和小数点。
当你尝试输入不符合这个模式的数据时,浏览器会自动阻止,并显示错误提示。如果需要在JavaScript中实时验证,可以在`oninput`事件上添加一个函数来检查值是否符合规定:
```javascript
document.getElementById('numeric-input').addEventListener('input', function (event) {
const input = event.target.value;
if (!/^(\d+(\.\d{1}))?$/.test(input)) {
event.target.setCustomValidity('只允许输入整数和最多一位小数');
} else {
event.target.setCustomValidity('');
}
});
```
阅读全文