为什么String.match在结果数组中返回重复项?

时间:2014-09-24 23:18:06

标签: javascript regex

为什么

"abc123".match(/(\d{3})/)

返回

[ "123", "123" ]

而不仅仅是

["123"]

表达式是否相当于找到正好三位数?

1 个答案:

答案 0 :(得分:3)

它会返回两个结果,因为您已经使用了捕获组。

在结果数组中,results[0]将包含完整表达式匹配的内容,results[1]将包含第一个捕获组匹配的内容,依此类推。

在您的情况下,完整表达式和第一组产生相同的结果。