我正在创建一个输入验证,仅允许数字和点输入。
它确实将点字符限制为一次按键,但按住非数字键时则不然。
<input class="form-control" type="text" onkeyup="this.value=this.value.replace(/[^0-9.{1}$]/g, '').replace(/(\..*)\./g, '$1');" />
即使按住非数字键,如何将点字符串限制为 1?
最佳答案
这里不需要 javascript:使用 input
类型为 number
(请参阅 MDN )。如果键入的用户输入无效(它可能包含更多点),则输入没有值(使用代码片段的按钮检查)。例如:
document.querySelector("button").addEventListener(
"click",
() => {
const val = document.querySelector("input").value;
console.log( val || "Invalid");
}
);
<input type="number" step="0.1" min="1" max="20" value="1.0">
<button>show value</button>
关于javascript - 即使按住非数字键,如何将点字符串限制为仅一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57240823/