微信小程序 - 设置input只能输入数字

需求

view如下:

<view class="ys-number-input {{error?'error':''}}">
    <input type="number" auto-focus focus='{{focus}}' value="{{value}}" title="" bindinput="handleInput" bindblur="validate" maxlength="11" placeholder="请输入十一位手机号码..." placeholder-style="font-size:3vw;"/>
    <image bindtap="clear" hidden="{{!showClose}}" src="/assets/icon/close.png"></image>
  </view>

需求是输入手机号,设置type为number只能拉起数字键盘,并不能限制其只能输入数字。因此我们需要通过其他的方法来做限制。

正则

为input绑定data中的value值,在input事件中监听输入的值。利用正则将其过滤然后重新setData更新value值,缺点就是输入非数字的值时界面会闪烁(重渲染)

handleInput(e) {
      let value = this.validateNumber(e.detail.value)
      this.setData({
        value
      })
    },
validateNumber(val) {
      return val.replace(/\D/g, '')
    },
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值