var keywords = { '關鍵字1', '關鍵字2' }; var re = new RegExp();function hasKeywords( content ) { for( i = 0; i < keywords.length; i++ ) { // 重置表示式物件 re.compile( keywords[i], 'ig' ); // 測試是否符合 if( re.test( content ) ) { return true; } } return false; }
2007年11月2日
Javascript 中正規表示式的小問題
前兩天為了實作關鍵字濾除的需要,所以又把正規表示式搬出來用。一開始的想法是建立一個關鍵字表示式陣列,然後在實際檢測時丟進這個陣列中整個 test() 一遍即可,這樣做似乎沒有問題,但實際使用時會發現除了第一次的檢測一定正確外,之後的檢測動作卻會時有時無,讓人疑惑。於是懷疑可能是一個正規表示式物件一定進行過 test() 之後就會處於某種失效的狀態,只要在這種狀態內的各種比對動作都會不正常。所以,解決的方式就是每次比對後都要記得重置表示式物件,如下例:
標籤:
Computer,
Programming
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言