input 输入框只允许输入整数或非负整数或限制输入中文

1、整数: 负整数、0、正整数; 非负整数: 正整数与0
<a-col :md="12" :sm="24" class="ex-item">
  <a-form-item label="闸顶高程(单位m,保留三位小数点)">
    <a-input
      v-decorator="[
        'topElevation',
        {
          rules: [
            { required: true, message: '请输入闸顶高程' },
          ],
        },
      ]"
      placeholder="请输入闸顶高程"
      :maxLength="9"
      @input="getTopElevation"
    />
  </a-form-item>
</a-col>

getTopElevation(obj) {
  this.form.setFieldsValue({
    topElevation: this.getMinus(obj),
  });
  this.form.setFieldsValue({
    gateStandardHigh: (parseFloat(this.form.getFieldValue('topElevation')) * 1000 - parseFloat(this.form.getFieldValue('cleanHigh')) * 1000) / 1000
  });
},

// 不限制多少位小数
getLimit(obj) {
  obj.target.value = obj.target.value.replace(/[^\d.]/g, "");
  obj.target.value = obj.target.value.replace(/^\./g, "");
  obj.target.value = obj.target.value
    .replace(".", "$#$")
    .replace(/\./g, "")
    .replace("$#$", ".");
  obj.target.value = obj.target.value.replace(
    /^(\-)*(\d+)\.(\d\d\d\d\d\d\d\d).*$/,
    "$1$2.$3"
  );
  return obj.target.value;
},
getCleanHigh(obj) {
  this.form.setFieldsValue({
    cleanHigh: this.getDecimal(obj),
  });
  this.form.setFieldsValue({
    gateStandardHigh: (parseFloat(this.form.getFieldValue('topElevation')) * 1000 - parseFloat(this.form.getFieldValue('cleanHigh')) * 1000) / 1000
  });
},

// 允许输入整数(正整数、0、负整数)并且可保留三位小数的统一方法
getMinus(obj) {
  obj.target.value = obj.target.value.replace(/[^\d.-]/g, "");
  obj.target.value = obj.target.value.replace(/^\./g, "");
  obj.target.value = obj.target.value
    .replace(".", "$#$")
    .replace(/\./g, "")
    .replace("$#$", "."); //  只能输入一个小数点
  obj.target.value = obj.target.value
    .replace("-", "$#$")
    .replace(/\-/g, "")
    .replace("$#$", "-"); // 只能输入一个负号
  obj.target.value = obj.target.value.replace(
    /^(\-)*(\d+)\.(\d\d\d).*$/,
    "$1$2.$3"
  );
  // 含有"-"并且不在第一位,如:22-22
  if((obj.target.value.indexOf('-') != -1) && (obj.target.value.indexOf('-') != 0)) {
    this.$message.error('输入有误,请重新输入!');
    return "";
  } else if ((obj.target.value.indexOf('-') != -1) && (obj.target.value.indexOf('.') == 1)) {
    // 含有"-"并且"."在"-"之后,如:-.2323
    this.$message.error('输入有误,请重新输入!')
    return "";
  } else {
    return obj.target.value;
  }
},
2、只能输入数字
obj.target.value = obj.target.value.replace(/[^\d]/g,"");
3、只能输入数字和小数点
obj.target.value = obj.target.value.replace(/[^\d.]/g,"");
4、允许输入整数
obj.target.value = obj.target.value.replace(/[^\d.-]/g,"");
5、限制小数位
// 只能输入两位小数
obj.target.value = obj.target.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3');
// 保留三位(保留多少位就加多少个\d)
obj.target.value = obj.target.value.replace(/^(\-)*(\d+)\.(\d\d\d).*$/,'$1$2.$3');
6、允许输入整数,不允许输入小数点儿
// 允许输入整数(正整数、0、负整数)
getMinus(obj) {
  obj.target.value = obj.target.value.replace(/[^\d-]/g, "");
  obj.target.value = obj.target.value
    .replace("-", "$#$")
    .replace(/\-/g, "")
    .replace("$#$", "-");
  // 含有"-"并且不在第一位,如:22-22
  if((obj.target.value.indexOf('-') != -1) && (obj.target.value.indexOf('-') != 0)) {
    this.$message.error('输入有误,请重新输入!');
    return "0";
  } else {
    return obj.target.value
  }
},
7、不允许输入中文
noChinese(obj) {
  return obj.target.value.replace(/[\u4E00-\u9FA5]|[\uFE30-\uFFA0]/g, '');
},
8、学习或测试更多正则:https://www.runoob.com/regexp/regexp-intro.html

别问我住哪儿,我只想住在你的心里。

猜你喜欢

转载自blog.csdn.net/agua001/article/details/122425025
今日推荐