vue如何把字符串中的所有@内容,替换成带标签的

 更新时间:2023年10月09日 14:29:53   作者:妍崽崽@  
这篇文章主要介绍了vue如何把字符串中的所有@内容,替换成带标签的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

vue把字符串中的所有@内容,替换成带标签的

目前有个需求是,要把输入框里面的@还有姓名高亮。

要求:

1、必须用 v-html ,带标签的给他渲染

2、把字符串中的@全部查找出来,替换掉,注意要过滤已经替换好的,不然就是无限循环了

实现方法:

// 消息展示中处理@样式
const textPointTo = (content:any) => {
  let index = value.indexOf('@');
  while (index !== -1) {
    const endIndex = value.indexOf(' ', index);
    const replaceStr = value.substring(index, endIndex !== -1 ? endIndex : undefined);
    value = value.replace(replaceStr, `<span class='replyPointTo'>${replaceStr.split('@')[1]}</span>&nbsp;`);
    index = value.indexOf('@', index + 1);
 }
 return value.replace(/PointTo'>/g, "PointTo'>@")
};

字符串中各类字符标签过滤

1、替换字符串中的所有特殊字符(包含空格)

trimSpecial(string) {
 //替换字符串中的所有特殊字符(包含空格)
 if (string != '') {
 const pattern = /[`~!@#$^\-&nbsp*()=|{}':;',\\\[\]\.<>
\/?~!@#¥……&*()——|{}【】';:""'。,、?\s]/g
 string = string.replace(pattern, '')
 }
 return string
 }

2、过滤字符串中的img标签元素

 removeImg(v) {
 let data = v.replace(/<img.*>/gi, '')
 return data
 },

3、过滤转义符、p标签

 removeP(v) {
 if (v != '') {
 v = v.replace(/ /gi, ' ')
 v = v.replace(/
/gi, '')
 v = v.replace(/</gi, '<')
 v = v.replace(/>/gi, '>')
 v = v.replace(/<br \/>/g, '')
 v = v.replace(/<\/?p[^>]*>/gi, '')
 }
 return v
 },

4、过滤掉html标签

 delHtmlTag(str) {
 let a = str
 var converter = document.createElement('DIV')
 converter.innerHTML = a
 var b = converter.innerText
 converter = null
 var c = b.replace(/[&\|\\\*^\-]/g, '')
 return c.replace(/\s*/g, '')
 },

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • vite中如何使用@ 配置路径别名

    vite中如何使用@ 配置路径别名

    这篇文章主要介绍了vite中如何使用@ 配置路径别名,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • 在vscode里使用.vue代码模板的方法

    在vscode里使用.vue代码模板的方法

    本篇文章主要介绍了在vscode里使用.vue代码模板的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • vue服务端渲染页面缓存和组件缓存的实例详解

    vue服务端渲染页面缓存和组件缓存的实例详解

    本篇文章给大家带来的内容是关于vue服务端渲染页面缓存和组件缓存的介绍(代码),有一定的参考价值,有需要的朋友可以参考一下
    2018-09-09
  • vue 接口请求地址前缀本地开发和线上开发设置方式

    vue 接口请求地址前缀本地开发和线上开发设置方式

    这篇文章主要介绍了vue 接口请求地址前缀本地开发和线上开发设置方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • vue实现登录时图形验证码

    vue实现登录时图形验证码

    这篇文章主要为大家详细介绍了vue实现登录时图形验证码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • vue3 源码解读之 time slicing的使用方法

    vue3 源码解读之 time slicing的使用方法

    这篇文章主要介绍了vue3 源码解读之 time slicing的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • 使用Vue Router进行路由组件传参的实现方式

    使用Vue Router进行路由组件传参的实现方式

    Vue Router 为 Vue.js 应用提供了完整的路由解决方案,其中包括了组件间的数据传递功能,通过路由组件传参,我们可以轻松地在导航到新页面时传递必要的数据,本文将深入探讨如何使用 Vue Router 进行路由组件间的传参,并通过多个示例来展示其实现方式
    2024-09-09
  • Vue源码学习记录之手写vm.$mount方法

    Vue源码学习记录之手写vm.$mount方法

    在我们开发中,经常要用到Vue.extend创建出Vue的子类来构造函数,通过new 得到子类的实例,然后通过$mount挂载到节点,今天通过本文给大家讲解手写vm.$mount方法 ,感兴趣的朋友一起看看吧
    2022-11-11
  • Ant Design Vue全局对话确认框(confirm)的回调不触发

    Ant Design Vue全局对话确认框(confirm)的回调不触发

    这篇文章主要介绍了Ant Design Vue全局对话确认框(confirm)的回调不触发问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • vue中使用console.log打印的实现

    vue中使用console.log打印的实现

    这篇文章主要介绍了vue中使用console.log打印的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04

最新评论