【问题标题】:How to ignore order of search terms in regex (ReactJS)?如何忽略正则表达式(ReactJS)中搜索词的顺序?
【发布时间】:2022-10-07 21:51:43
【问题描述】:

我有一个表单,用户通过它输入输入,我正在尝试为表单进行自动完成。我在 ReactJS 中的 title 变量上运行正则表达式。 regexEscape 函数 si 用于转义字符串。

function regexEscape(str) {
    return str.replace(/[-\\^$*+?.()|[\]{}]/g, '\\$&')
  }
if (title.length > 4) {
      matches = movies.filter(movie => {
        let input = regexEscape(title);
        const regex = new RegExp(`${input}`, "gi")
        return movie.match(regex)
      })
    }

现在,假设用户输入“Departed”,然后它与显示“Departed, The (2006)”的自动完成条目匹配,但我希望能够返回“Departed, The (2006)”,即使用户输入了“逝者"

那可能吗?我需要能够忽略搜索词的顺序,以及排除我认为的逗号,但我还不知道如何忽略单词的顺序

【问题讨论】:

    标签: reactjs regex string autocomplete


    【解决方案1】:

    您可以使用

    const regex = new RegExp(`.*${input}.*`, "gi")
    

    通过添加.*,您将获得完整的标题匹配。

    【讨论】:

      猜你喜欢
      • 2011-02-25
      • 2021-10-26
      • 1970-01-01
      • 2023-04-10
      • 2023-03-04
      • 2018-10-29
      • 2019-07-01
      • 2014-04-17
      相关资源
      最近更新 更多