1. 效果背景
大家在后台管理系统的日常开发中,经常会用到搜索框搜索,如果数据量庞大,那么关键词高亮很常用。
2. 效果演示
3. 实现思路
接收到后端返回的数据时对数据进行操作,搜索匹配关键词,同时使用replace()方法进行字符串的替换, 页面使用v-html实现高亮动态展示。
4. 具体实现过程
4.1 使用indexOf进行匹配
把当前行的关键词val传入进行判断,如果包含关键词,就把关键词给高亮
brightenKeyword(val, keyword) {
val = val + '';
if (val.indexOf(keyword) !== -1 && keyword !== '') {
return val.replace(keyword, '<font color="#409EFF">' + keyword + '</font>')
} else {
return val
}
}
4.2 使用正则表达式进行匹配
brightenKeyword(val, keyword) {
const Reg = new RegExp(keyword, 'i');
if (val) {
return val.replace(Reg, `<span style="color: #409EFF;">${keyword}</span>`);
}
}
5. 页面
<el-table-column fit prop="name" label="项目名称" header-align="center" align="center">
<template slot-scope="scope">
<span v-html="brightenKeyword(scope.row.name, dataForm.name)" ></span>
</template>
</el-table-column>
7. 使用场景
页面查询搜索方便查询。