js 控制输入框只支持1位小数整数不显示小数点
可以通过监听输入框的输入事件,对输入的值进行处理,只保留1位小数并且如果输入的是整数,则不显示小数点。
以下是一个示例代码:
<input type="text" id="input">
<script>
const input = document.getElementById('input');
input.addEventListener('input', (event) => {
let value = event.target.value;
// 去除非数字和小数点字符
value = value.replace(/[^\d\.]/g, '');
// 只保留一个小数点
value = value.replace(/\./, '$#$').replace(/\./g, '').replace('$#$', '.');
// 只保留1位小数
value = value.replace(/^(\-)*(\d+)\.(\d).*$/, '$1$2.$3');
// 如果输入的是整数,则不显示小数点
value = value.replace(/\.0$/, '');
event.target.value = value;
});
</script>
这段代码中,我们首先通过 addEventListener 监听了输入框的输入事件。在事件触发时,我们获取输入框的值,并对其进行处理。
我们先使用正则表达式去除非数字和小数点字符。然后,我们使用正则表达式只保留一个小数点,并且只保留1位小数。最后,我们使用正则表达式判断输入的值是否为整数,如果是,则去除小数点。
最终,我们将处理后的值设置回输入框中。这样,就可以实现只支持1位小数,且整数不显示小数点的效果
原文地址: https://www.cveoy.top/t/topic/fuO2 著作权归作者所有。请勿转载和采集!