js 正则过滤除了正整数以外的其他字符

334 阅读1分钟

有个输入框,只能输入数字,输入其他,如 - . 等都无效。第一个数字不能以0开头。

  • 页面直接使用

 let _num = this.orderForm.orderInfo.maintainPeriod;
        _num = Number(
          _num
            .toString()
            .replace(/[^0-9]/g, '')
            .replace(/\D/g, '')
            .replace(/\b(0+)/gi, ''),
        );
        this.orderForm.orderInfo.maintainPeriod = _num
          .toString()
          .replace(/[^0-9]/g, '')
          .replace(/\D/g, '')
          .replace(/\b(0+)/gi, '');

  • main.js 挂载 Vue 上使用
// main.js

// 正整数校验正则替换异常字符
Vue.prototype.ZIndexRegReplace = value => {
  if (value) {
    return Number(
      value
        .toString()
        .replace(/[^0-9]/g, '')
        .replace(/\D/g, '')
        .replace(/\b(0+)/gi, ''),
    );
  }
};
// 页面方法中调用(例如输入框失焦事件)

  handleBlur() {
      this.form.oppty.warehouseSupport = this.ZIndexRegReplace(this.form.oppty.warehouseSupport);
    },

借鉴于这里