input 框禁止输入非数字和小数点以外的字符(两种思路和方法)

要实现 input 框禁止输入非数字和小数点以外的字符,一共有两种思路:

  1. 利用input事件和正则,输入非数字和小数点以外的字符时,直接替换为空
  2. 利用keydown事件和阻止默认事件,输入非数字和小数点以外的字符时,直接禁止输入

下面就来实现上述两种方法,为了让更多的同学能够明白,看懂,因此我这里没有使用框架,直接采用原生的 js(好久没写,生疏了)

input事件和正则
<body>
    <div>
      <input type="text" oninput="inputNumber(this)">
    </div>
    <script>
      function inputNumber(e) {
        e.value = e.value.replace(/[^0-9.]/g,"")  // 不可输入数字和小数点以外的
      }
    </script>
</body>
keydown事件和阻止默认事件
<body>
    <div>
      <input type="text" id="input_">
    </div>
    <script>
      let input_ = document.getElementById("input_");
      input_.onkeydown = function(e) {
        let _code =  e.keyCode 
        if ( (_code < 48 || _code > 57) && _code != 190 && _code != 8){
          // 输入 除数字 小数点 删除键 以外的均阻止
          e.preventDefault();
        }
      }
    </script>
</body>
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangpaopao0609

看星空看日落不如看我的眼眸

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值