前段js解决文本框录入保留多位小数设置

自己在前段开发所遇到的问题整理了一下,供大家参考:

原本的代码:<input type="text" class="form-control" id="yfprice" style="text-align:right;" value="0" οnkeyup="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')">

问题1:避免input默认为整数时不能录入小数的问题

问题2:规避录入小数时自动填充0。 

优化之后的代码如下:

<input id="bg4" type="text" class="form-control bgipt" style="height: 32px;width: 120px;" οnkeyup="onkeyup1(this)"/>

js代码如下:

//保留小数点后9位数
    function onkeyup1(objs) {
        var value = $(objs).val();
        var qf_reg = new RegExp(",", "g");
        value = value.replace(qf_reg, "");
        var reg = /(^(\-|\+)?[1-9]\d*(\.\d{1,9})?$)|(^0(\.\d{1,9})?$)/;
        if (!reg.test(value)) {
            var weishu = value.split('.')[1];
            if (weishu.length < 9) {//小数点后的位数小于9还是等于原来的值;
                $(objs).val(value);
            } else {
                $(objs).val(toFixed(parseFloat(value), 9));
            }

        } else {
            $(objs).val(value);
        }


    }

这里附带一个自己写的toFixed方法,解决js自有toFixed方法的弊端。

function toFixed(number, m) {
    if (typeof number !== 'number') {
        throw new Error("number不是数字");
    }
    let result = Math.round(Math.pow(10, m) * number) / Math.pow(10, m);
    result = String(result);
    if (result.indexOf(".") == -1) {//无小数位
        //if (m != 0) {
        //    result += ".";
        //    result += new Array(m + 1).join('0');
        //}
    } else {
        let arr = result.split('.');
        if (arr[1].length < m) {
            arr[1] += new Array(m - arr[1].length + 1).join('0')
        }
        result = arr.join('.')
    }
    return result
}

相关推荐

  1. 前段js解决文本框录入保留小数设置

    2023-12-17 04:22:02       42 阅读
  2. js 保留小数点

    2023-12-17 04:22:02       42 阅读
  3. 后端返回数据前端保留小数

    2023-12-17 04:22:02       61 阅读
  4. bignumber.js库,解决前端小数精度问题

    2023-12-17 04:22:02       22 阅读
  5. unity中浮点数只保留小数

    2023-12-17 04:22:02       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-17 04:22:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-17 04:22:02       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-17 04:22:02       82 阅读
  4. Python语言-面向对象

    2023-12-17 04:22:02       91 阅读

热门阅读

  1. 重构第五章:重构的方法

    2023-12-17 04:22:02       47 阅读
  2. linux端口转发

    2023-12-17 04:22:02       55 阅读
  3. 【pyqt5制作悬浮且透明控件组】

    2023-12-17 04:22:02       56 阅读
  4. springboot整合redis并使用cache

    2023-12-17 04:22:02       52 阅读
  5. 【Python 千题 —— 基础篇】句子首字母要大写

    2023-12-17 04:22:02       64 阅读
  6. 2. 皇后的控制力

    2023-12-17 04:22:02       71 阅读
  7. Linux-yum安装部署Redis

    2023-12-17 04:22:02       51 阅读
  8. 西电微机原理实验三

    2023-12-17 04:22:02       56 阅读