• vue3+TS前端JS实现 搜索关键词变红


    起初在网上搜索获得的处理方式大都是类似这种:

    但是实际使用中发现,对于汉字和数字是没有问题的,但是如果有字母就会出现问题。

    1.只有汉字和数字的时候:匹配正常。

    2.当有字母的时候:异常替换。

    原因:第二次判断的时候,替换的html代码里面的字母也做了识别和标红替换

    最后做了调整改用另一种方式,针对单字匹配和字符串匹配两种处理:

    展示:

    <li v-html="brightenKeyword('123abcd张三李四')">li>

    处理:

    1. const brightenKeyword = (contentText) => {
    2. //单字匹配时将文字标红
    3. let res = contentText;
    4. if (searchKey.value == '') {
    5. return res;
    6. } else {
    7. let wordsArray = contentText.split('');
    8. for (var i = 0; i < wordsArray.length; i++) {
    9. if (searchKey.value.includes(wordsArray[i])) {
    10. wordsArray[i] = "" + wordsArray[i] + '';
    11. }
    12. }
    13. res = wordsArray.join('');
    14. return res;
    15. }
    16. };
    17. // const brightenKeyword = (contentText) => {
    18. // // 字符串整串匹配时:仅需要当前方法
    19. // let res = contentText; //res的初始值是不带任何红色格式的
    20. // const Reg = new RegExp(searchKey.value, 'g');
    21. // res = contentText.replaceAll(Reg, `${searchKey.value}`);
    22. // return res;
    23. // };

  • 相关阅读:
    Opencv进行图像处理基础模板
    跨域问题-笔记
    Linux进程控制
    [树形dp]Orgrimmar 2022杭电多校第8场 1008
    宜居行星最新报道
    K8S:pod集群调度及相关操作
    Vue.js 的事件循环(Event Loop)机制
    Opencv 极坐标变换
    PyCharm+PyQT5之三界面与逻辑的分离
    浅谈前缀索引
  • 原文地址:https://blog.csdn.net/Seven_Amber/article/details/133026594