【js】匹配的字变色

1.整体匹配

用户输入的今在后面 但是替换的话没有这种顺序,只要是和关键字一样的就会被替换掉

 eachColor(content, searchVal) {
      // let content = '今天你快乐了吗 ' //后台返回的结果
      // let searchVal = '今快了乐' //用户输入的搜索关机字
      let arr = []
      for (let i = 0, len = searchVal.length; i < len; i++) {
        for (let q = 0, len = content.length; q < len; q++) {
          if (searchVal[i] === content[q]) arr.push(q)
        }
      }
      content = content.split('')
      for (let j = 0, len = arr.length; j < len; j++) {
        for (let k = 0; k < content.length; k++) {
          content.splice(arr[j], 1, `<span style="color:#F89C35">${content[arr[j]]}</span>`)
          break
        }
      }
      return content.join('')
    },
  },

匹配的字变色

2 单个字匹配

let content='今天你快乐了吗 ';//后台返回的结果
let searchVal='快乐'; //用户输入的搜索关机字
function eachColor(content,searchVal){
     let nt=`<span style="color:red">${searchVal}</span>`;
     return content.replace(searchVal,nt);
 }

这种是简介版本的,只能匹配挨着的关键字,如果在快乐中间加别的就匹配不上

猜你喜欢

转载自blog.csdn.net/jieweiwujie/article/details/123502887