正则表达式 匹配正负整数和正负小数或者空

需求如下
1.整数
2.小数
3.负数
4.不可以只带负号或者小数点或者[-.]
5.可以为空
6.不可以有类似[0.][.0]
7.整数位限制在5位,负数位要限制在2位

求各位帮忙

已私聊解决

符合楼主的要求,包括空字符,不过第7点要求是不是搞错了,负数位?小数位吧。。有帮助麻烦点个采纳【本回答右上角】,谢谢~~

img

正则为:

^(-?\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])?)$ 觉得帮到你的话点下采纳