请用Vue实现一个高亮文字展示的组件
将text文案中 与match匹配的内容进行高亮
高亮部分字体颜色为红色加粗,其他文案为黑色细体
<HighlightText text="abcabccabcbacdcabacdab" match={['abc','cba','bc']} />
<template>
<div>
<span class="content">{{showText}}</span>
</div>
</template>
<script lang=''ts">
export default {
data() {
return {
text: 'abcabccabcbacdcabacdab',
match: ['abc','cba','bc']
}
},
computed: {
showText() {
for(let i = 0; i < match.length; i++) {
const regex = new RegExp(match[i], 'gi');
if(regex.test(this.text)) {
this.text = this.text.replace(regex, `<span style="color: red; fontWeight: bold;">${match[i]}</span>`);
}
}
return this.text;
}
}
mounted() {
}
}
</script>
<style lang="less">
.content {
color: #000;
font-weight: 400;
}
</style>