Javascript正则表达式匹配部分字符串,但不匹配整个字符串

时间:2019-05-02 16:06:33

标签: javascript regex

这是我的正则表达式:--ISNUMBER(...)

目的是匹配表示范围的字符串,包括负数。例如:

  • (-?\d+)-(-?\d+)
  • 1-10
  • 0-100,但是:
  • -1-10

然后使用正则表达式,我将捕获第一个数字,最后一个数字以及整个字符串。在Angular中:

-100--10

let regExp : RegExp = RegExp('(-?\\d+)-(-?\\d+)', 'g'); let values: RegExpExecArray = regExp.exec('-100--10'); 的结果来看,我可以使用位置valuesvalues[1],因为values[2]是为整个字符串保留的。

显然,以上内容对我有用,但是您是否知道如何使我的正则表达式更加精确?即我不希望整个字符串都匹配

1 个答案:

答案 0 :(得分:1)

在您的模式(-?\\d+)中重复,因此您只能使用此模式在text中进行匹配。

let pattern = RegExp('(-?\\d+)', 'g')
let text = '-100--10'
text.match(pattern)   //output: ["-100", "-10"]

这样,您不必匹配整个字符串。