input框只能输入数字和小数点保留两位数

最近需要对金额输入框进行限定,要求如下:

  • 只能输入数字和小数点;
  • 小数点只能有 1 个
  • 第一位不能是小数点
  • 第一位如果输入 0,且第二位不是小数点,则去掉第一位的 0
  • 小数点后保留 2 位
NumberCheck(num) {
  var str = num;
  var len1 = str.substr(0, 1);
  var len2 = str.substr(1, 1);
  //如果第一位是 0,第二位不是点,就用数字把点替换掉
  if (str.length > 1 && len1 == 0 && len2 != ".") {
    str = str.substr(1, 1);
  }
  //第一位不能是.
  if (len1 == ".") {
    str = "";
  }
  //限制只能输入一个小数点
  if (str.indexOf(".") != -1) {
    var str_ = str.substr(str.indexOf(".") + 1);
    if (str_.indexOf(".") != -1) {
      str = str.substr(0, str.indexOf(".") + str_.indexOf(".") + 1);
    }
  }
  //正则替换,保留数字和小数点
  str = str.replace(/[^\d^\.]+/g, '')
  //如果需要保留小数点后两位,则用下面公式
  str = str.replace(/\.\d\d$/, '') return str;
}

「点点赞赏,手留余香」

1

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
码云笔记 » input框只能输入数字和小数点保留两位数

发表回复