[問題] regex exec二個大括號間字串問題

作者: RichieRich (Richie)   2022-02-24 14:26:10
var b="{{dffdfdfdf}} {{eeeee}}" ,a;
while( a=/\{\{([^}]+)\}\}/g.exec(b))
{
}
我想取出所有{{}}的字串 請問這樣為啥一直跑符合第一個patterm的地方
也就是無窮的回圈
但改用match就可以了?不過要自已把{{}}去掉
謝謝
作者: LPH66 (-6.2598534e+18f)   2022-02-24 15:33:00
你寫一個 regex 在那裡的話每次執行會新建一個 regex 物件你需要另起一個變數儲存一個 regex 物件, 再用它來 .exec.exec 會在你所用的 regex 物件中紀錄之前看到哪裡了(紀錄在那個物件的 .lastIndex 裡面) 下次 .exec 時就可以從那個地方開始; 你這樣寫每次都新建自然都只給你第一個

Links booklink

Contact Us: admin [ a t ] ucptt.com