【问题标题】:Regex range including negative decimal numbers between -100 and 100 including but not requiring 2 decimal points [duplicate]正则表达式范围包括 -100 到 100 之间的负十进制数,包括但不要求 2 个小数点 [重复]
【发布时间】:2020-04-24 17:19:42
【问题描述】:

我需要一些帮助来提出一个允许 -100 到 100 之间的十进制值的正则表达式。 它最多可以有两位小数,但不应要求小数。

根据这个问题,我有 0 - 100 分: Regex range between 0 and 100 including two decimal

^(?:100(?:\.00?)?|\d?\d(?:\.\d\d?)?)$

【问题讨论】:

  • 为什么不能在^ 后面加上-?
  • 这就是答案,谢谢。 ^-?(?:100(?:\.00?)?|\d?\d(?:\.\d\d?)?)$

标签: regex forms validation


【解决方案1】:

你可以试试这个表达方式:

/^-?(?:100|[0-9]{1,2})(?:\.[0-9]{1,2})?$/gm
  • ^ 在行首断言位置
  • -? 匹配字符 - 字面意思(区分大小写)
    • ? Quantifier — 匹配 0 到 1 次,尽可能多次,根据需要回馈(贪婪)(否定是可选的
  • 非捕获组(?:100|[0-9]{1,2})一百或以下
    • 1st Alternative 100 与字符 100 逐字匹配(区分大小写)
    • 2nd Alternative [0-9]{1,2} 匹配列表中存在的单个字符 [0-9]
    • {1,2} Quantifier — 匹配 1 到 2 次,尽可能多次,按需回馈(贪婪)
    • 0-9 0 到 9 之间的单个字符(区分大小写)
  • 非捕获组 (?:\.[0-9]{1,2})?不需要小数
    • ? Quantifier — 匹配 0 到 1 次,尽可能多次,按需回馈(贪心)
    • \. 匹配字符 . 字面意思(区分大小写)
    • [0-9]{1,2} 匹配列表中存在的单个字符 [0-9]
    • {1,2} Quantifier — 匹配 1 到 2 次,尽可能多次,根据需要回馈(贪婪)
    • 0-9 0 到 9 之间的单个字符(区分大小写)
  • $ 在行尾断言位置

全局模式修饰符/标志:

  • g:全球。所有匹配(第一次匹配后不返回)
  • m :多行。使 ^ 和 $ 匹配每行的开始/结束(不仅是字符串的开始/结束)

【讨论】:

    猜你喜欢
    • 2016-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-23
    • 2011-11-26
    • 2011-04-20
    相关资源
    最近更新 更多