收藏
回答

小程序input如何做到像微信提现输入框那种限制?只能输入小数点后两位

描述问题:小程序的input如何限制,才能像微信提现的输入框那样,输不进第三位小数,目前只能做到输入第三位小数时,输进去在js里判断去掉第三位,但是这样在输入的时候,能看见input输入第三位后再被去掉,有一个过程,而微信提现那个就是看不到这个过程,不明白问题的可以自行微信提现一下。求解这个问题

回答关注问题邀请回答
收藏

5 个回答

  • 早餐不要在空腹的时候吃🥛
    早餐不要在空腹的时候吃🥛
    2022-01-20

    value = value.replace(/[^\d.]/g, "");  //清除“数字”和“.”以外的字符

        value = value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的

        value = value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");

        value = value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');//只能输入两个小数

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

          value = parseFloat(value);

        }


    value是输入的值

    2022-01-20
    有用
    回复 1
  • 陈景夏
    陈景夏
    2021-07-06
    moneyInput(e) {
        let { value } = e.detail
        let pattern = new RegExp(/^[\d.]+$/);   //正则数字
        if(pattern.test(value)){
          if(value.indexOf(".")!=-1){
            let prveDian = value.split(".")[0].length;
            this.setData({
              maxlength : prveDian+3
            })
          }else{
            this.setData({
              maxlength : 9999999999
            })
          }
        }
    
    
      },
    
    2021-07-06
    有用
    回复 1
    • 陈景夏
      陈景夏
      2021-07-06
      没有限制多个小数点。有大佬限制了可发来学习下。
      2021-07-06
      回复
  • 风吹乱的回忆
    风吹乱的回忆
    2020-07-02

    可以用maxlength属性,输入时获取小数点后的长度,再做下数据处理,改变下maxlength的值就行了。

    


    2020-07-02
    有用
    回复 2
    • 阿北
      阿北
      2020-10-15
      动态设置maxlength在ios会有问题,先设置4位,再设置-1就会出现还是只能输入4位的情况
      2020-10-15
      回复
    • 陈景夏
      陈景夏
      2021-07-06回复阿北
      不用设置为-1,回不到-1的,你得设置成999999无限大。
      2021-07-06
      回复
  • 惠泽宸
    惠泽宸
    2019-10-30

    大佬,这个问题解决了吗


    2019-10-30
    有用
    回复 4
  • Mr.Zhao
    Mr.Zhao
    2019-08-29

    虚拟输入框,就是显示输入框只是一个view,具体怎么写自己百度

    2019-08-29
    有用
    回复 5
登录 后发表内容
问题标签