正则表达式

187 阅读1分钟

1.电话号码转'****'

 "11111111986".replace(/(\d{4})(\d{4})(\d{3})/, "$1"+"\*\***"+"$3")
 结果获得"1111****986"

2.n位小数的数字

  floatLimit(value, bit) { 
    value = value.toString();
    const regStrs = [
      ['^0(\\d+)$', '$1'], // 禁止录入整数部分两位以上,但首位为0
      ['[^\\d\\.]+', ''], // 禁止录入任何非数字和点
      ['\\.(\\d?)\\.+', '.$1'], // 禁止录入两个以上的点
      [`^(\\d+\\.\\d{${bit}}).+`, '$1'], // 禁止录入小数点后n位以上
      ['^\\.(\\d?)', '0.$1'], // .99替换0.99
      ['0\.0|0\.00', ''] // 禁止录入0.0和0.00
    ];
    regStrs.forEach((item) => {
    const reg = new RegExp(item[0]);
    value = value.replace(reg, item[1]);
    });
    return value;
  }