小程序------正则控制input只能输入数字,和小数点

原文章链接

需求:控制input只能输入数字和小数点

结构代码如下:


    
    
  

主要是绑定到: bindinput="handleInput"

注意:这里type="number"只能控制键盘初始为数字键盘,  若无其他要求,可以使用 带小数点的: type="digit"

 正则来限制:

formatNum(e) {  //正则验证金额输入框格式
    e.detail.value = e.detail.value.replace(/^(\-)*(\d+)\.(\d{6}).*$/, '$1$2.$3')
    e.detail.value = e.detail.value.replace(/[\u4e00-\u9fa5]+/g, ""); //清除汉字
    e.detail.value = e.detail.value.replace(/[^\d.]/g, ""); //清楚非数字和小数点
    e.detail.value = e.detail.value.replace(/^\./g, ""); //验证第一个字符是数字而不是  
    e.detail.value = e.detail.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", "."); //只保留第一个小数点, 清除多余的 
  },
  handleInput:function(e){
    var that = this;
    that.formatNum(e);  
    let value= e.detail.value;
    console.log(value);
    that.setData({
      value
    })    
}

 

你可能感兴趣的:(知识点总结,正则表达式,微信小程序)