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

ste*_*her 0 javascript regex

为什么

"abc123".match(/(\d{3})/)
Run Code Online (Sandbox Code Playgroud)

返回

[ "123", "123" ]
Run Code Online (Sandbox Code Playgroud)

而不仅仅是

["123"]
Run Code Online (Sandbox Code Playgroud)

表达式不等于正好找到三位数字吗?

Rob*_*sen 5

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

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

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