vue3 vue-quill文本内容 收到后台返回某个词后页面内容中这个词变单独变为为红色
时间: 2024-02-05 20:10:55 浏览: 74
可以使用 Vue 的 computed 属性来检测文本内容中是否包含特定词汇,并根据条件动态添加样式。具体实现可以参考以下代码:
首先,在模板中使用 v-html 将后台返回的文本内容渲染到页面上:
```html
<template>
<div>
<div v-html="content"></div>
</div>
</template>
```
然后,在 Vue 实例中定义 computed 属性,用于检测文本内容中是否包含特定词汇,并根据条件动态添加样式:
```js
<script>
export default {
data() {
return {
content: '' // 后台返回的文本内容
}
},
computed: {
formattedContent() {
// 检测文本内容中是否包含特定词汇
const regex = new RegExp('特定词汇', 'gi')
const matches = this.content.match(regex)
// 如果存在特定词汇,则添加样式
if (matches) {
return this.content.replace(
regex,
'<span class="highlight">$&</span>'
)
}
return this.content
}
}
}
</script>
<style>
.highlight {
color: red;
}
</style>
```
在上述代码中,我们使用正则表达式检测文本内容中是否包含特定词汇,并将匹配的词汇用 span 标签包裹起来,并添加一个名为 highlight 的 CSS 类来设置样式。最后,将处理后的文本内容返回给 formattedContent 属性,并使用 v-html 将其渲染到页面上。
当然,如果只需要将特定词汇变为红色,也可以使用 JavaScript 的 replace 方法直接替换文本内容,而不用添加 span 标签。具体实现方式可以根据实际需求进行选择。
阅读全文