想做一个能输0,但是不能输01 02 0445 0005 这样的数字要怎么做呢?

val = val.replace(/[^0-9]/g, '')

val是输出值

想做一个能输0,但是不能输01 02 0445 0005 这样的数字要怎么做呢?

想要的是实现替换不是正则判断
this.$set(this.formData.list[i], name, val.replace(/[^0-9]/g, '')) // 只允许输入数字

如果是输入01 去掉前面的0,如果只是0可以输入

阅读 3.7k
5 个回答

整数:
/(^[1-9]\d*$|^\d$)/

小数可以输入吗?
带小数点:
/^([1-9]\d*|0)(\.\d*[1-9])?$/

如果需要替换的话:

image.png

不替换 0:

replace(/0*(\d+)/,"$1")

image.png

包括0的4位小数正则/^(0|[1-9]+[0-9]*)(\.[0-9]{1,4})?$/

image.png

/^([0-9]|[1-9][0-9]+)$/

删除0
image.png

image.png

结合StephenTian 提供的正则式判断,就可以让每次输入后检查是否符合,如果不符合,回退到前次输入不更新,符合才接受输入情况。

//整数:
zsRE=/(^[1-9]\d*$|^\d$)/
//带小数点:
xsRE=/^([1-9]\d*|0)(\.\d*[1-9])?$/

最后找到办法了,先限制只能输入0-9的数字然后获取数据,转数组,length>1 的执行循环,如果角标为0 的数据为0 那就去掉,然后拼接成数字

最推荐的办法是上面大神的:

 // this.$set(this.formData.list[i], name, val.replace(/[^0-9]/g, '')) // 只允许输入数字
      this.$set(this.formData.list[i], name, val.replace(/0*(\d+)/, '$1')) // 只允许输入数字和0,并且不能输入00 01 02,
推荐问题