vue 中 input 限制只能输入数字,允许正数与负数

2022-02-20T15:10:00

vue 的 input 中, 限制只能输入正数与负数,完整代码如下:

<template>
<el-input v-model="number" @input="onlyNbr1" @change="onlyNbr2"/>
</template>

<script>
  data() {
    return {
      number: null
    }
  },
  methods: {
    onlyNbr1(ipt) {
      let data = String(ipt)
      const char = data.charAt(0)
      // 先把非数字的都替换掉
      data = data.replace(/[^\d]/g, '')
      // 如果第一位是负号,则允许添加
      if (char === '-') {
        data = '-' + data
      }
      this.number = data
    },
    onlyNbr2() {
      const data = String(this.number)
      // 如果只有一个负数,那么替换为 null
      console.log(data === '-')
      if (data === '-') {
        this.number = null
      }
    }
  }
}

如果有更好的实现方式,欢迎评论讨论。

当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »