作者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://www.ptt.cc/bbs/Ajax/M.1645683972.A.1E7.html
推 LPH66: 你寫一個 regex 在那裡的話每次執行會新建一個 regex 物件 02/24 15:33
→ LPH66: 你需要另起一個變數儲存一個 regex 物件, 再用它來 .exec 02/24 15:34
→ LPH66: .exec 會在你所用的 regex 物件中紀錄之前看到哪裡了 02/24 15:35
→ LPH66: (紀錄在那個物件的 .lastIndex 裡面) 下次 .exec 時就可以 02/24 15:35
→ LPH66: 從那個地方開始; 你這樣寫每次都新建自然都只給你第一個 02/24 15:36