首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JavaScript正则表达式和子匹配

JavaScript正则表达式和子匹配
EN

Stack Overflow用户
提问于 2009-05-09 20:34:09
回答 2查看 34.2K关注 0票数 72

为什么在设置g修饰符时Javascript子匹配停止工作?

代码语言:javascript
复制
var text = 'test test test test';

var result = text.match(/t(e)(s)t/);
// Result: ["test", "e", "s"]

上面的代码运行良好,result[1]"e"result[2]"s"

代码语言:javascript
复制
var result = text.match(/t(e)(s)t/g);
// Result: ["test", "test", "test", "test"]

上面的代码忽略了我的捕获组。以下是唯一有效的解决方案吗?

代码语言:javascript
复制
var result = text.match(/test/g);
for (var i in result) {
    console.log(result[i].match(/t(e)(s)t/));
}
/* Result:
["test", "e", "s"]
["test", "e", "s"]
["test", "e", "s"]
["test", "e", "s"]
*/

编辑:

我再次高兴地告诉你,10年后你现在可以做到这一点(.matchAll已经被添加到规范中)

代码语言:javascript
复制
let result = [...text.matchAll(/t(e)(s)t/g)];
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/844001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档