Javascript 将字符串传递到正则表达式中

Javascript 将字符串传递到正则表达式中,javascript,regex,Javascript,Regex,考虑以下几点: function filterFoods() { var foods = [ {food: 'Bacon'}, {food: 'Butter'}, {food: 'Chicken'}, {food: 'Cocoa butter'}, {food: 'Saussages'}, {food: 'Ham'}, {food: 'Duck'}, {food: 'Salmon'}, {food: 'Fish'}, {food: 'Lamb'}, {

考虑以下几点:

 function filterFoods() {
   var foods = [
      {food: 'Bacon'}, {food: 'Butter'}, {food: 'Chicken'}, {food: 'Cocoa butter'},
      {food: 'Saussages'}, {food: 'Ham'}, {food: 'Duck'}, {food: 'Salmon'},
      {food: 'Fish'}, {food: 'Lamb'}, {food: 'Fries'}, {food: 'Tomatoes'},
      {food: 'Chicken'}, {food: 'Carrot'}, {food: 'Egg'}, {food: 'Avocado'},
      {food: 'Duck'}, {food: 'Hello'}, {food: 'Cheese'}, {food: 'Carrot'},
      {food: 'Potato'}, {food: 'Sweet Potato'}, {food: 'Pineapple'}, {food: 'Peanut'},
  ]
  return foods.filter(function(food) {
    return (/po/gi).test(food.food);
  });
}

console.log(
  filterFoods()
)

我回来了,这就是我想要的

但我希望能够将某些内容传递到filterFoods函数,然后传递到正则表达式中,有点像这样:

 function filterFoods(query) {
   var foods = [
      {food: 'Bacon'}, {food: 'Butter'}, {food: 'Chicken'}, {food: 'Cocoa butter'},
      {food: 'Saussages'}, {food: 'Ham'}, {food: 'Duck'}, {food: 'Salmon'},
      {food: 'Fish'}, {food: 'Lamb'}, {food: 'Fries'}, {food: 'Tomatoes'},
      {food: 'Chicken'}, {food: 'Carrot'}, {food: 'Egg'}, {food: 'Avocado'},
      {food: 'Duck'}, {food: 'Hello'}, {food: 'Cheese'}, {food: 'Carrot'},
      {food: 'Potato'}, {food: 'Sweet Potato'}, {food: 'Pineapple'}, {food: 'Peanut'},
  ]
  return foods.filter(function(food) {
    return (/query/gi).test(food.food);
  });
}

console.log(
filterFoods('po')
)
但我得到的是一个空数组。如果我错了,请纠正我,但我认为这是因为我将它作为字符串传递,那么如何实现这一点呢

提前感谢

您需要使用该对象

newregexp(查询,“gi”)
return (new RegExp(query, 'gi')).test(food.food);