繁体   English   中英

JS 正则表达式区分大小写问题

[英]JS Regex case sensitive issue

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

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

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

  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>`) }} /> )
  }

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

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

谢谢!

看看这篇文章,它讨论了使用 /i 标志不区分大小写的问题:

正则表达式:忽略大小写敏感

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM