oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" 限制输入两位小数怎么写
时间: 2024-02-12 07:04:20 浏览: 205
浅谈vue限制文本框输入数字的正确姿势
您可以使用以下代码来限制输入两位小数:
```html
<input type="text" oninput="limitDecimal(this)">
```
```javascript
function limitDecimal(obj) {
// 清除"数字"和"."以外的字符
obj.value = obj.value.replace(/[^\d.]/g, "");
// 验证第一个字符是数字
obj.value = obj.value.replace(/^\./g, "");
// 只保留第一个小数点,清除多余的
obj.value = obj.value.replace(/\.{2,}/g, ".");
obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
// 只能输入两个小数
obj.value = obj.value.replace(/^(-)*(\d+)\.(\d\d).*$/, '$1$2.$3');
}
```
代码解释:
1. `oninput="limitDecimal(this)"` 绑定输入框的 oninput 事件,一旦输入框的值发生变化就会执行 `limitDecimal` 函数。
2. `obj.value.replace(/[^\d.]/g, "")` 将输入框的值中,除了数字和小数点以外的字符全部替换为空字符串。
3. `obj.value.replace(/^\./g, "")` 如果第一个字符是小数点,就将其替换为空字符串。
4. `obj.value.replace(/\.{2,}/g, ".")` 如果输入框的值中有多个小数点,就将其替换为一个小数点。
5. `obj.value.replace(/^(-)*(\d+)\.(\d\d).*$/, '$1$2.$3')` 只保留两位小数,如果输入的小数位数超过两位,就将多余的小数位删除。
阅读全文