JavaScript实现标题搜索关键词高亮显示

本文介绍了如何使用JavaScript实现标题搜索关键词的高亮显示。针对需求,文章提出了一个初步方案,通过循环查找关键词并插入HTML标签来达到高亮效果。但此方案存在一个问题,即无法处理关键词与已插入标签中的子串匹配的情况,例如‘class’或‘s’等。
摘要由CSDN通过智能技术生成

需求:标题搜索keyword,对返回数据str中存在的所有关键词进行高亮显示
解决方案
a计划(对keyword字符串进行循环,在str中出现keyword的地方插入HTML标签):
1.插入HTML标签函数

/**
* @param {String} target 需高亮显示的字符串
* @param {String} str 原始字符串
*/
showHigh(target,str){
  let positions = [];
  let pos = str.indexOf(target);
  while (pos > -1) {
    positions.push(pos);
    pos = str.indexOf(target, pos + 1);
  }
  positions = positions.map((item, index) => {
    return (item += 30 * index);
  });
  positions.forEach((item, index) => {
    str =
      str.slice(0, item) + "<span class='higthStr'>" + str.slice(item);
    str =
      str.slice(0, item + 23 + target.length) +
      "</span>" +
      str.slice(item + 23+ target.length);
  });
  return str
}
// 30为插入标签字符串length  23为开始标签length

2.AJ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值