当前位置: 代码网 > it编程>编程语言>Javascript > Vue3使用v-html实现文本关键词变色处理

Vue3使用v-html实现文本关键词变色处理

2024年07月03日 Javascript 我要评论
首先看应用场景这有一段文本内容,是项目的简介,想要实现将文本中的关键词进行变色处理有如下关键词实现思路遍历文本内容,找到关键词,并使用某种方法更改其字体样式。经过搜寻资料决定采用v-html实现,但是

首先看应用场景

这有一段文本内容,是项目的简介,想要实现将文本中的关键词进行变色处理

有如下关键词

实现思路

遍历文本内容,找到关键词,并使用某种方法更改其字体样式。经过搜寻资料决定采用v-html实现,但是v-html本身并不安全,有安全性风险且影响性能,所以谨慎使用。
想详细了解的同学的同学可以看一下官网的介绍

uniapp官网v-htlml

vue官网v-html

实现代码

//存储结果
const introduction_content = ref('')
//定义函数
const updatecolor = function (content: string) {
    let keywords = ['导师:', '关联比赛:', '获得成就:', '未来发展:', '奖金:']
    const result = ref(content) // 初始值为原始内容
    //本项目的需求是根据项目状态动态变更颜色
    const color = ref(
      detaildata.value!.status == 0
        ? 'rgba(7, 193, 96, 1)'
        : detaildata.value!.status == 1
        ? 'rgba(250, 157, 59, 1)'
        : detaildata.value!.status == 2
        ? 'rgba(250, 81, 81, 0.5)'
        : ''
    )
    // 遍历每个关键词并进行替换
    keywords.foreach((keyword) => {
      const regex = new regexp(keyword, 'gi')
      // 每次替换都基于当前的 result.value
      result.value = result.value.replace(
        regex,
        `<span style="color: ${color.value};font-size:15px;">${keyword}</span>`
      )
    })
    introduction_content.value = result.value
}

需要注意的是,如果需要更改字体大小,不能使用rpx等,需要使用px

可以输出introduction_content看一下,结果如下

xx项目简介
<span style="color: rgba(7, 193, 96, 1);font-size:15px;">导师:</span>​xxx
<span style="color: rgba(7, 193, 96, 1);font-size:15px;">关联比赛:</span>​建模
<span style="color: rgba(7, 193, 96, 1);font-size:15px;">奖金:</span>​100

到此这篇关于vue3使用v-html实现文本关键词变色处理的文章就介绍到这了,更多相关vue3 v-html关键词变色内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com