作者RichieRich (Richie)
看板Ajax
标题[问题] regex exec二个大括号间字串问题
时间Thu Feb 24 14:26:10 2022
var b="{{dffdfdfdf}} {{eeeee}}" ,a;
while( a=/\{\{([^}]+)\}\}/g.exec(b))
{
}
我想取出所有{{}}的字串 请问这样为啥一直跑符合第一个patterm的地方
也就是无穷的回圈
但改用match就可以了?不过要自已把{{}}去掉
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.167.143.36 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Ajax/M.1645683972.A.1E7.html
1F:推 LPH66: 你写一个 regex 在那里的话每次执行会新建一个 regex 物件 02/24 15:33
2F:→ LPH66: 你需要另起一个变数储存一个 regex 物件, 再用它来 .exec 02/24 15:34
3F:→ LPH66: .exec 会在你所用的 regex 物件中纪录之前看到哪里了 02/24 15:35
4F:→ LPH66: (纪录在那个物件的 .lastIndex 里面) 下次 .exec 时就可以 02/24 15:35
5F:→ LPH66: 从那个地方开始; 你这样写每次都新建自然都只给你第一个 02/24 15:36