javascript - 即使按住非数字键,如何将点字符串限制为仅一个字符

标签 javascript regex

我正在创建一个输入验证,仅允许数字和点输入。

它确实将点字符限制为一次按键,但按住非数字键时则不然。

 <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/

相关文章:

javascript - 是否有比 Javascript 中的正则表达式更小的内存密集型方法来排除字母数字字符?

regex - 如何在 powershell 中使用正则表达式选择 "catch"代码块?

html - Python 3.3.2 - 在 HTML 中查找图像源

regex - Perl 正则表达式

javascript - TreeView - 检查是否展开并单击

javascript - 如何从 SPA 返回 HTTP 404 状态代码?

java - 如何配置java接受自签名小程序而不显示确认消息

javascript - Chrome 扩展从内容脚本引用/调用其他脚本函数

javascript - 随机化 div(悬停时暂停 + 点击功能)

c# - 使用正则表达式限制字符数