gpt4 book ai didi

javascript - 在字符串中搜索多个单词

转载 作者:行者123 更新时间:2023-12-01 01:39:37 25 4
gpt4 key购买 nike

我在这次挑战中找不到我想要的答案。我在后端使用 Express,并尝试构建一条路由来根据用户输入过滤结果。这是我到目前为止所拥有的:

router.get(
"/search",
passport.authenticate("jwt", { session: false }),
(req, res) => {
const keyword = req.query.keyword;
const location = req.query.location;
if (keyword) {
Task.paginate({
limit: 10,
sort: "_id"
}).then(tasks => {
let filtered = tasks.results.filter(task => {
return task.title.toLowerCase().includes(keyword.toLowerCase());
});
res.json({ ...tasks, results: filtered });
});
} else if (location) {
Task.paginate({
limit: 10,
sort: "_id"
}).then(tasks => {
let filtered = tasks.results.filter(task => {
return task.location.toLowerCase().includes(location.toLowerCase());
});
res.json({ ...tasks, results: filtered });
});
}
}
);

正如您从该 route 看到的,我正在通过查询字符串发送用户输入。 (关键字和位置)。如果用户仅传递关键字,我会过滤任务以查看标题是否包含用户传递的字符串。这在用户仅搜索一个字符串的情况下效果很好。

Example:
Title: "Work to be done today"
Search input: work
output: tasks

Now, what about this scenario:
Title: "Work to be done today"
Search: work today
output: []

如果我输入两个不是一个接一个的单词,则找不到任务。如何在整个字符串中搜索输入中的单词并在存在任何单词时返回任务? (正则表达式?)

最佳答案

您可以拆分单词,然后对于每个单词,测试该单词是否存在于字符串中,第一次单词出现在字符串中时,返回 true。

如果你想使用正则表达式,这也应该可以工作(不要忘记转义 javascript 正则表达式标记,如 * ( ) 等):

var regex = new RegExp(words.split(" ").join('|'));

然后您可以针对字符串测试正则表达式

关于javascript - 在字符串中搜索多个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52538125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com