需求如下
1.整数
2.小数
3.负数
4.不可以只带负号或者小数点或者[-.]
5.可以为空
6.不可以有类似[0.][.0]
7.整数位限制在5位,负数位要限制在2位
求各位帮忙
已私聊解决
符合楼主的要求,包括空字符,不过第7点要求是不是搞错了,负数位?小数位吧。。有帮助麻烦点个采纳【本回答右上角】,谢谢~~
正则为:
^(-?\d{1,5}(\.\d{1,2})?)?$
以下为js测试
var re = /^(-?\d{1,5}(\.\d{1,2})?)?$/
console.log(re.test('1234'))//true,整数且整数位未超过5位
console.log(re.test('1.2'))//true,小数
console.log(re.test('-12.34'))//true,负数
console.log(re.test('-'))//false,单独-
console.log(re.test('.'))//false,单独.
console.log(re.test('-.'))//false,单独.
console.log(re.test('-0.'))//false
console.log(re.test('0.'))//false
console.log(re.test('.0'))//false
console.log(re.test(''))//true,可以为空
console.log(re.test('111235.12'))//false,整数位超5位
console.log(re.test('-0.123'))//false,小数位超2位
这其实很简单,只要自己对应链接就行了
^[1-9]\d*$ //匹配正整数
^-[1-9]\d*$ //匹配负整数
^-?[1-9]\d*$ //匹配整数
^[1-9]\d*|0$ //匹配非负整数(正整数 + 0)
^-[1-9]\d*|0$ //匹配非正整数(负整数 + 0)
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ //匹配正浮点数
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ //匹配负浮点数
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ //匹配浮点数
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$ //匹配非正浮点数(负浮点数 + 0)
(-?[\d]{1,5}(.?[\d]{1,2})?)?\n
以下是过滤标本,不可的就是不匹配的,空值就是要匹配空值
(空值)
0
0.11
12345
-12345
-0.11
-(不可)
.(不可)
123456(不可)
0.123(不可)
.0(不可)
0.(不可)
-.(不可)
^(([0-9][1-9]{1,4})+(.[0-9])?)|\s|[0-9]|((-\d{1,2})+(.[0-9])?)$ 觉得帮到你的话点下采纳