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
廣告
回應