JS控制只能输入数字并且最多允许小数点两位

1. 在 JS 中

<input type="text" name="je" onkeyup="onlyNum(this)" />元

function onlyNum(obj){
    obj.value = obj.value.replace(/[^\d.]/g,"");  // 清除“数字”和“.”以外的字符
    obj.value = obj.value.replace(/\.{2,}/g,"."); // 只保留第一个. 清除多余的
    obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
    obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3'); // 只能输入两个小数

    if(obj.value.indexOf(".")< 0 && obj.value !=""){ // 以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
    obj.value= parseFloat(obj.value);
    }

    if (obj.value > 100) { // 不超过100
        obj.value = 100
    }

}

2. 在小程序中同样可以使用,如以下所示

  • 在工具类中,抽取为公共方法


    image.png
  • 在需要使用的 .wxml 中,绑定 input 事件和 value 值


    image.png
  • 在需要使用的 .js 中

// 导入util
const util = require('../../utils/util.js');

// 动态获取 input 值,从 input 绑定的值都在 e.detail 里面
  getInput(e) {
    util.onlyNum(e.detail)
    this.setData({
      telValue: e.detail.value
    })
  },
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、收藏、评论、点赞、计数功能准备工作 编写收藏、评论、点赞的功能按钮。计数功能是一个被动功能,无须用户有意识的主...
    追梦小乐阅读 6,648评论 2 3
  • 33、JS中的本地存储 把一些信息存储在当前浏览器指定域下的某一个地方(存储到物理硬盘中)1、不能跨浏览器传输:在...
    萌妹撒阅读 6,392评论 0 2
  • 最近由于公司需求要做小程序开发,而且做h5的前端同事现在都很忙,所以我们移动开发就开始学习这个微信小程序了,...
    无沣阅读 5,557评论 1 4
  • No1. NSAutoreleasePool' is unavailable: not available in ...
    Ego_1973阅读 3,848评论 0 0
  • 摘抄 ----------宫羽抱琴而出,廊下独抚。纤指拨捻之间,洗尽柔婉,铿锵铮铮。一派少年意气,金戈铁马,琴音烈...
    影掠浮光阅读 1,787评论 0 5