javascript regular expression的G參數

上一篇自己寫的仿自動完成功能中

有用到regular expression

var pattern = new RegExp("(\S)*"+q+"(\S)*", "g");
pattern.test(...);

↓↓↓

var pattern = new RegExp("(\S)*"+q+"(\S)*", "i");
pattern.test(...);

這東西的語法相當的難搞懂XDD

主要是快下班時有使用者反應

當他搜尋部分字串時 發現並不會出現所有相關的選項

也就是有漏

我心想 明明沒寫錯 怎麼可能

後來發現是參數G在作怪

理論上G代表global 應該是會將所有資料集裡符合的選項都帶回來才對

但可能是test()方法本身會去紀錄上一筆成功搜尋的位置

然後下次搜尋時就跳過之前的選項向後找 於是發生漏選項的可能

同樣的問題黑暗執行緒也發生過

所以還是把該參數拿掉吧 果然一切正常了

另外參數 i 是無視大小寫 也很好用 雖然我主要是中文字XDDD