我有一個非常strage問題:JavaScript RegExp不能使用兩次?
var cat = [ { slug: "test/foo", id: 1}, { slug: "test/bar", id: 1}];
var searchreg = new RegExp("test","g");
cat.forEach(function(item){
if(searchreg.test(item.slug)){
console.log(item);
}
});
這應該打印我的兩個項目進行的「貓」。但我只得到第一個。如果我添加更多的項目,我只會得到每一個第二(從第一個開始)。
我得到它與沃金:
var cat = [ { slug: "test/foo", id: 1}, { slug: "test/bar", id: 1}];
cat.forEach(function(item){
var searchreg = new RegExp("test","g");
if(searchreg.test(item.slug)){
console.log(item);
}
});
但我不明白爲什麼不工作(鉻) - 任何人主意?
FWIW,一個更簡單,更直接的方式來創建該正則表達式是'var searchreg =/test/g;'(或者當然,根據我的回答,省略'g')。另外值得一提的是你實際上並不需要regex,if(item.slug.indexOf(「test」)!== -1)'也可以。 –