在Chrome中,
/{.*?}/g.exec('aaa{eee}uuuu')
返回
["{eee}"]
,而
/{(.*?)}/g.exec('aaa{eee}uuuu')
返回
["{eee}", "eee"]
第二个结果是我的预期。为什么不是第一个代码返回“{eee}”的裸字符串?
答案 0 :(得分:1)
因为在第一个正则表达式中你没有使用大括号。大括号用于对传递的字符串进行分组,但在第二个正则表达式中,您使用了大括号,即#34; eee"根据你的意见。
第一个正则表达式只返回一个匹配的元素的数组。但在第二个表达式中它返回带有2个元素的数组。 [0] =>整个字符串匹配,[1] =>在大括号内匹配的字符串。如果使用更多大括号,则返回[2] => ......,[3] => ......等等