当前位置:首页 > 正则 > 正文内容

正则限制金额(小数2位多了输入不进去,总长度大于18之后输入不进去)

自由小鸟2年前 (2022-08-19)正则1037
<el-input
                @keyup.native="
                  ruleForm.totalAmount = oninput(ruleForm.totalAmount, 2)
                "
                v-model="ruleForm.totalAmount"
                maxlength="50"
                placeholder="请输入阿拉伯数字或小数"
                class="newWidth"
              ></el-input>
export function oninput(val, limit = 0) {
  val = val.replace(/[^\d.]/g, ""); //保留数字
  val = val.replace(/^00/, "0."); //开头不能有两个0
  val = val.replace(/^\./g, "0."); //开头为小数点转换为0.
  val = val.replace(/\.{2,}/g, "."); //两个以上的小数点转换成一个
  val = val.replace(".", "$#$").replace(/\./g, "").replace("$#$", "."); //只保留一个小数点
  /^0\d+/.test(val) ? (val = val.slice(1)) : ""; //两位以上数字开头不能为0
  const maxLength = 18
  const limit2 = maxLength - limit
  const str = "^(\\d{" + limit2 + ")\\.(\\d{" + limit + "}).*$";
  const reg = new RegExp(str);
  if (limit === 0) {
    // 不需要小数点
    val = val.replace(reg, "$1");
  } else {
    // 通过正则保留小数点后指定的位数
    val = val.replace(reg, "$1.$2");
  }
  return val;
}

版权声明:本文由Web学习之路发布,如需转载请注明出处。

本文链接:https://webge.net/?id=147

返回列表

没有更早的文章了...

没有最新的文章了...

“正则限制金额(小数2位多了输入不进去,总长度大于18之后输入不进去)” 的相关文章