在对象数组中搜索不区分大小写的字符串


let helpData = [
{
"question": "Question = Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
"answer": "Answer = Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
},
{
"question": "Question = Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
"answer": "Answer = Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
},
{
"question": "Question = Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
"answer": "Answer = Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
},
{
"question": "Question = Capital of India",
"answer": "Answer = Delhi."
},
];
let search = "capital";
const res = helpData.filter(obj => Object.values(obj).some(val => val.includes(search)));
console.log(res)

我想根据给定的字符串进行搜索。若大小写匹配,上面的代码可以正常工作,但对于不敏感的大小写则不起作用。请帮助找到解决方案

let helpData = [
{
"question": "Question = Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
"answer": "Answer = Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
},
{
"question": "Question = Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
"answer": "Answer = Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
},
{
"question": "Question = Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
"answer": "Answer = Lorem Ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
},
];
let regexp = /Lorem Ipsum/gm;
const even = (element) => element.match(regexp);
const resp = helpData.filter(obj => Object.values(obj).some(even));
console.log(resp);

解决方案

对于不区分大小写的字符串

let regexp = /Lorem Ipsum/gmi;

对于区分大小写字符串

let regexp = /Lorem Ipsum/gm;

const even = (element) => element.match(regexp);
const resp = helpData.filter(obj => Object.values(obj).some(even));
console.log(resp);

相关内容

最新更新