You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用JavaScript实现匹配字符串替换,为标题指定词添加高亮样式?

实现标题文本高亮函数

这里给你优化后的实现方案,能直接返回你需要的带高亮样式的标题字符串:

const highlightHeading = (title, title_highlighted) => {
  // 将高亮词转为Set,提升匹配效率
  const highlightWords = new Set(title_highlighted.trim().split(/\s+/));
  // 拆分原标题为词汇数组
  const titleWords = title.trim().split(/\s+/);
  
  // 遍历处理每个词汇,匹配到的用span包裹
  const processedWords = titleWords.map(word => {
    if (highlightWords.has(word)) {
      return `<span style={{ color: "orange" }}>${word}</span>`;
    }
    return word;
  });
  
  // 拼接成完整的h1标签字符串并返回
  return `<h1>${processedWords.join(' ')}</h1>`;
};

// 测试示例
console.log(highlightHeading("Lorem ipsum dolor sit amet", "ipsum amet"));

关键优化点:

  • 用Set存储高亮词汇,相比嵌套循环,查找匹配的时间复杂度从O(n*m)降到O(n),效率更高
  • 使用map方法遍历原标题词汇,更简洁地生成处理后的数组
  • 最后直接拼接成目标格式的字符串返回,而不是只打印结果

测试后会输出你需要的结果:

<h1>Lorem<span style={{color: "orange"}}>ipsum</span> dolor sit<span style={{color: "orange"}}>amet</span></h1>

内容的提问来源于stack exchange,提问作者Kiron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 21:21:11