为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript正则表达式和子匹配项

JavaScript正则表达式和子匹配项

UYOU 2019-10-17 16:07:55
g设置修饰符后,为什么Java子匹配项停止工作?var text = 'test test test test';var result = text.match(/t(e)(s)t/);// Result: ["test", "e", "s"]以上工作正常,result[1]is "e"和result[2]is "s"。var result = text.match(/t(e)(s)t/g);// Result: ["test", "test", "test", "test"]上面的内容忽略了我的捕获组。以下是唯一有效的解决方案吗?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"]*/编辑:我再次高兴地告诉您,十年后,您现在可以执行此操作(.matchAll已添加到规范中)let result = [...text.matchAll(/t(e)(s)t/g)];
查看完整描述

3 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

明确addresssing另一个角落的情况:如果正则表达式有一个捕获组,但全球改性剂没有被使用,匹配()将返回第一个完整的匹配,然后匹配捕捉所有子。例如,'foobar'.match(/f(o)*(ba)/)将返回["fooba", "o", "ba"]

查看完整回答
反对 回复 2019-10-17
  • 3 回答
  • 0 关注
  • 703 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信