搜索结果列表怎么实现动态高亮匹配关键词?

Code°一诺 阅读 3

我在做搜索功能时,后端返回了结果列表,但想在前端把用户输入的关键词在结果中高亮显示。试过用 String.replace()<mark> 标签,但发现如果关键词包含特殊字符(比如括号、点号)就会出错,正则表达式老是报错。

有没有稳妥一点的做法?比如自动转义关键词再替换?下面是我现在的代码:

const highlight = (text, keyword) => {
  const regex = new RegExp(keyword, 'gi');
  return text.replace(regex, '<mark>$&</mark>');
};
我来解答 赞 3 收藏
二维码
手机扫码查看
暂无解答

暂无解答