5509harry
2021-08-25 15:28
采纳率: 100%
浏览 314
已结题

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

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

求各位帮忙

  • 收藏

7条回答 默认 最新

  • Pliosauroidea 2021-08-26 08:25
    已采纳

    已私聊解决

    已采纳该答案
    2 打赏 评论
  • CSDN专家-showbo 2021-08-25 18:05

    符合楼主的要求,包括空字符,不过第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
    2 打赏 评论
  • StjpStjp 2021-08-25 15:45
    如果我的回答对你有帮助,请点击旁边的采纳按钮,谢谢
    (纯手工码出来很累的,求采纳)

    这其实很简单,只要自己对应链接就行了

    ^[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
    2 打赏 评论
    1人已打赏
  • Pliosauroidea 2021-08-25 15:37

    (-?[\d]{1,5}(.?[\d]{1,2})?)?\n

    2 2 打赏 评论
  • 一般般玩 2021-08-25 16:07
    ^[-]?[1-9]\d{0,4}(\.\d{0,2})|[-]?0(\.((0[1-9])|[1-9]\d))?$
    

    试一下这个,。。为空那个直接判断吧,非空时看满不满足正则。

    2 打赏 评论
  • 5509harry 2021-08-25 16:11

    以下是过滤标本,不可的就是不匹配的,空值就是要匹配空值
    (空值)
    0
    0.11
    12345
    -12345
    -0.11
    -(不可)
    .(不可)
    123456(不可)
    0.123(不可)
    .0(不可)
    0.(不可)
    -.(不可)

    2 打赏 评论
  • 凡小少 2021-08-25 17:17

    ^(([0-9][1-9]{1,4})+(.[0-9])?)|\s|[0-9]|((-\d{1,2})+(.[0-9])?)$ 觉得帮到你的话点下采纳

    2 打赏 评论

相关推荐 更多相似问题