gpt4 book ai didi

javascript - 以任何顺序匹配查询中所有单词的正则表达式

转载 作者:IT王子 更新时间:2023-10-29 03:22:40 24 4
gpt4 key购买 nike

我正在尝试为一个项目构建一个搜索功能,该功能会根据用户搜索输入以及它是否与针对项目列出的关键字相匹配来缩小项目范围。为此,我将项目关键字保存在 data 属性中,并使用 RegExp 模式将查询与这些关键字相匹配。

我目前正在使用这个表达式,我知道它是不正确的,需要你的帮助:

new RegExp('\\b(' + query + ')', 'gi'))) 其中查询是 | 输入的查询的分隔值用户(例如 \\b(meat|pasta|dinner))。即使只有 1 个匹配项,这也会给我返回一个匹配项,例如 - meat

只是抛出一些上下文,这里有一个小例子:

如果用户输入:meat pasta dinner,它应该列出所有具有针对它们列出的所有 3 个关键字的项目,即 meat pasta晚餐。这些与输入的顺序无关。

你能帮我用一个表达式来匹配查询中的所有单词,以任何顺序吗?

最佳答案

你可以实现先行断言

^(?=.*\bmeat\b)(?=.*\bpasta\b)(?=.*\bdinner\b).+

查看here on Regexr

(?=.*\bmeat\b)positive lookahead assertion ,确保 \bmeat\b 位于字符串中的某处。其他关键字也是如此,.+ 实际上匹配整个字符串,但前提是断言为真。

但它也会匹配“晚餐肉 Foobar 意大利面”

关于javascript - 以任何顺序匹配查询中所有单词的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13911053/

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