废话少说先上效果(左侧代码,右侧效果)
- 第一组
![](https://i-blog.csdnimg.cn/blog_migrate/cc6ed7d8bf82ae5006550230c3de0088.png)
- 第二组
![](https://i-blog.csdnimg.cn/blog_migrate/1b2eb77743d74feb31de5a9a0191450d.png)
- 第三组
![](https://i-blog.csdnimg.cn/blog_migrate/1cbf9917f82bab8fefc90f98091d28d7.png)
看到什么规律了吗?
没错!!这份代码就是依靠正则表达式来做出高亮效果,你负责传入str与reg,而函数则负责实现代码的高亮
解析
结构部分如下
<template><div><span:class="index%2!==0?'hightLight':''"v-for="(item,index) in textData":key="index">{
{item}}</span></div>
</template>
基本原理就是将传入的str按照正则的规则进行切割,偶数部分负责高亮,奇数部分负责正常显示
如:
str与reg分别为
let str = "高亮几个词语出来好不好";
let reg = /(高亮|词语)/g;
将该部分切割为如下数组
“高亮几个词语出来好不好” —》 [‘’, ‘高亮’, ‘几个’, ‘词语’, ‘出来好不好’] ----》
知道了基本原理,我们再来看一下代码
let str = "高亮几个词语出来好不好";let reg = /(高亮|词语)/g;let result = {};let currentIndex = 0, returnData = [];while ((result = reg.exec(str