为什么String.match()方法返回多个值?

时间:2014-05-22 13:51:59

标签: javascript regex match

我有以下字符串,在我的Javascript代码中定义:

var s = "10px solid #101010";

现在,我想只得到数字的初始部分。对于这个purporse,我尝试了以下内容:

s.match(/^([0-9]+)/g);

它就像一个魅力,结果是['10']

在此测试之后,我还尝试删除g修饰符,如下所示:

s.match(/^([0-9]+)/);

我期待同样的结果,但我错了。结果是一个包含两个解决方案的数组:['10', '10']

有人可以解释我为什么吗?在第二种情况下,数组的最后一个元素的含义是什么?

1 个答案:

答案 0 :(得分:-2)

'/ g'返回所有匹配的,它不会在第一个匹配点停止

'g' - 执行全局匹配(找到所有匹配项,而不是在第一次匹配后停止)

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/RegExp