【问题标题】:JS Regex case sensitive issueJS Regex 区分大小写的问题
【发布时间】:2021-07-28 19:51:19
【问题描述】:

我有这个反应应用程序,它包含项目并有一个用于这些项目的搜索栏。我正在尝试这样做,因此当您在搜索中键入时,它会显示具有匹配模式的项目,但搜索词会在项目标题中突出显示。

例如: 您搜索:砂锅 结果将显示:“西兰花奶酪砂锅菜

我的问题是我无法让我的函数返回标题不区分大小写... 我的功能:

  const formatTitle = (title) => {
    const searchTerm = 'casserole';
    const escapeRE = new RegExp(/([.*+?^=!:$(){}|[\]\\])/g)
    const safeRE = (string) => {
      return string.replace(escapeRE, '$1');
    }

    return ( <span dangerouslySetInnerHTML={{ __html : title.replace(safeRE(searchTerm), `<strong>${searchTerm}</strong>`) }} /> )
  }

它确实返回了匹配的项目,但无论出于何种原因,它都没有在标题中的搜索词匹配周围放置强标签。如果您在搜索中匹配案例,砂锅,它会在其周围放置强标签....我很困惑。我对正则表达式不是很精通。

我从这个https://github.com/facebook/react/issues/3386拼凑出我的功能

谢谢!

【问题讨论】:

  • 在 Stack Overflow 中提问之前,请务必先进行一些研究! Search results - 使用 i 修饰符可以清楚地看到很多示例。
  • @MrMythical 我尝试使用 i 标志,但由于某种原因我仍然得到相同的结果

标签: javascript reactjs regex


【解决方案1】:

查看这篇使用 /i 标志讨论不区分大小写的帖子:

Regex: ignore case sensitivity

【讨论】:

  • 我尝试使用 i 标志,但由于某种原因我仍然得到相同的结果
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-07
  • 2011-03-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多