不能输入0开头的数字

现在有两个输入框要求

一个是输入的数字只能是0,1,2…… 的整数,不能是0001 01 这种

一个是输入的数字只能是0,1,2,3,4…… 和 0.12323…… 的形式,不能是00.1231或者00000.1231

有没有合适的正则呢?

阅读 12k
6 个回答
//第一个: 
^(([1-9][0-9]*)|0)$
//第二个: 
(^(((([1-9][0-9]*)|0)\.)[0-9]*)$)|(^([1-9][0-9]*|0)$)

第一个:/^([1-9]\d*|0)$/

第二个:/^([1-9]\d|0|(0|[1-9]\d)(\.\d+)?)$/

不包括0,小数保留两位:^((0{1}\.\d{1,2})|([1-9]\d*\.{1}\d{1,2})|([1-9]+\d*))$

第一个:

^(?:[1-9]\d*|0)$

第二个:

^(?:[1-9]\d*|0)(?:\.\d+)?$

写的很多看不懂,自己写了一个,实测能用:
`/^(0|[1-9]d{0,8})$/

/^(0|[1-9]d{0,15})(.d{0,4})?$/`

匹配非数字和零开头的数字的一个或多个零

/\D|(^0+(?=\d))/g

应用场景:禁止输入匹配的内容,去掉数字开头的任意个零

(e) => e.target.value.replace(/\D|(^0+(?=\d))/g,'')
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏