【发布时间】: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