代码之家  ›  专栏  ›  技术社区  ›  Jeff Robert Dagala

如何在javascript上使用regex从字符串中获取范围值

  •  1
  • Jeff Robert Dagala  · 技术社区  · 7 年前

    我想在javascript上使用regex获取范围值,这样当我使用 .match 它将返回值。我已经用过 - ~ 作为范围运算符。

    我现在的正则表达式是 /(\-?\d+)(?:\-|\~)(\-?\d+)/ 但这不会返回带十进制值的数字。

    成功的 得到:

    • "5-10" 应该返回 ["5-10", "5", "10"]
    • "-5-10" 应该返回 ["-5-10", "-5", "10"]
    • "-5--10" 应该返回 ["-5-10", "-5", "-10"]

    失败 得到:

    • "5.1-10" 应该返回 ["5.1-10", "5.1", "10"]
    • "-5.1-10" 应该返回 ["-5.1-10", "-5.1", "10"]
    • "-5.1--10" 应该返回 ["-5.1-10", "-5.1", "-10"]
    • "-5.1--10.2" 应该返回 ["-5.1-10", "-5.1", "-10.2"]
    1 回复  |  直到 7 年前
        1
  •  1
  •   ACD    7 年前
    /^(-?\d+\.?\d*?)[-~](-?\d+\.?\d*?)$/
    

    您需要捕获可能带有负号的第一个数字 - 带数字的十进制 .digit . 然后用两个连字符分开 - 或倾斜 ~ 最后,以与第一个数字相同的方式捕获第二个数字。