vue3高亮

vue或者js设置关键字高亮

<template>
  <div>
    <span
      :class="index % 2 !== 0 ? 'hightLight' : ''"
      v-for="(item, index) in textData"
      :key="index"
      >{{ item }}</span
    >
  </div>
</template>

<script>
export default {
  data() {
    return {
      textData: []
    }
  },
  created() {
    this.init()
  },
  methods: {
    init() {
      // let str = "实现搜索词高亮 - 百度文库";
      // let reg = /([高亮词文])/g;
      // let str = "高亮几个词语出来好不好";
      // let reg = /(高亮|词语)/g;
      let str = '1212高亮## 4455 ### 0011 ##44488## 哈高亮哈哈 ##'
      // let reg = /##\s+(.*?)\s+##/g
      let reg = /(高亮|词语)/g
      let result = {}
      let currentIndex = 0
      let returnData = []
      while ((result = reg.exec(str))) {
        returnData.push(str.slice(currentIndex, result.index))
        returnData.push(result[1])
        currentIndex = result.index + result[0].length
      }
      if (str.length > currentIndex) {
        returnData.push(str.slice(currentIndex, str.length))
      }
      console.log('returnData:', returnData)
      this.textData = returnData
    }
  }
}
</script>

<style>
.hightLight {
  color: red;
}
</style>
上次更新: