如何在javascript中使用数组中的正则表达式进行搜索
我正在尝试实现搜索过滤器,我有一个数组:如何在javascript中使用数组中的正则表达式进行搜索,javascript,regex,Javascript,Regex,我正在尝试实现搜索过滤器,我有一个数组: Var aa = ["Sage","Salsify (usually Purple Salsify or Oyster Plant)"]; var regex = RegExp("[a-zA-Z]?"); var wordList = vegetables.filter((elem, index)=>{ return regex.test(elem); }) 我认为这将只匹配字
Var aa = ["Sage","Salsify (usually Purple Salsify or Oyster Plant)"];
var regex = RegExp("[a-zA-Z]?");
var wordList = vegetables.filter((elem, index)=>{
return regex.test(elem);
})
我认为这将只匹配字符,但是当用户键入Salsify时,如何获得完整字符串“Salsify(通常为紫色Salsify或牡蛎植物)”?,如果您这样做:
aa.filter((e) => /.*Salsify.*/.test(e))
您将获得
aa
中出现字符串Salsify
的每个元素。对于简化过滤器,您可以使用:
var aa=[“鼠尾草”、“鲑鱼(通常是紫色鲑鱼或牡蛎植物)”;
var查询='salsify';
var wordList=aa.filter((elem,index)=>elem.toLowerCase().includes(query.toLowerCase());
console.log(wordList)代码>输入字符串是什么?这里的键。。。如果查询来自用户输入,那么查询和数组中的值都必须规范化。。。所以使用String.toLowerCase()之类的东西是很关键的。。。否则,大小写不匹配将导致regex或.includes()不匹配。好call@DynasticSponge是的,这就是为什么我在RegExp
中包含I
标志,这意味着不区分大小写