如果我运行此命令:/([^\/]+)+/g.exec('/a/b/c/d');我得到这个:["a", "a"]但是如果我运行这个:'/a/b/c/d'.match(/([^\/]+)+/g);然后,我得到了预期的结果:["a", "b", "c", "d"]有什么不同?
3 回答
郎朗坤
TA贡献1921条经验 获得超9个赞
exec带有全局正则表达式的表达式应在循环中使用,因为它仍将检索所有匹配的子表达式。所以:
var re = /[^\/]+/g;
var match;
while (match = re.exec('/a/b/c/d')) {
// match is now the next match, in array form.
}
// No more matches.
String.match 为您执行此操作,并丢弃捕获的组。
添加回答
举报
0/150
提交
取消