帮我实现input框只能输入8位数字的正则,并且最多保留两位小数
时间: 2024-05-02 19:20:26 浏览: 224
JS通过正则限制 input 输入框只能输入整数、小数(金额或者现金) 两位小数
可以使用以下正则表达式:
```javascript
/^\d{1,8}(\.\d{1,2})?$/
```
解释:
- `^`:匹配字符串的开头。
- `\d`:匹配数字字符。
- `{1,8}`:匹配前面的数字字符至少1次,最多8次。
- `(\.\d{1,2})?`:匹配小数点和后面的1到2个数字字符,这部分是可选的。
- `$`:匹配字符串的结尾。
使用示例:
```javascript
const input = document.querySelector('input');
input.addEventListener('input', function() {
const value = this.value;
if (!/^\d{1,8}(\.\d{1,2})?$/.test(value)) {
this.value = value.slice(0, -1); // 删除最后一个字符
}
});
```
这段代码会监听输入框的输入事件,如果输入的内容不符合正则表达式,就删除最后一个字符。这样就可以确保只能输入8位数字,且最多保留两位小数。
阅读全文