实现类似的微博话题的功能

实现类似的微博话题的功能

正则匹配内容
let reg= /[##][^##]+[##]/g (中英文的#匹配)

 ReplaceTopic(str) {
      var r, k; // 声明变量。
      // var ss = str.replace(/<[^<>]+>/g, "").replace(/&nbsp;/gi, "");  // 去除html格式
      var ss = str;
      // ##包裹内容的格式化处理,变成可以跳转的a标签链接
      r = ss.replace(/[##][^##]+[##]/g, function(word) {
        // k = encodeURI(word.replace(/\#/g, ""));
        return `<a style="color:#00BAFF" class="topic">${word}</a>`;
        // return (
        //   '<a href="/topic/list/?type=2&topic=' +
        //   k +
        //   '" style="color:#00BAFF">' +
        //   word +
        //   "</a>"
        // );
      });
      return r; //返回替换后的字符串
    }

2.vue中富文本的点击事件的绑定(替换的格式的时候不能添加上的@click的事件,就算手动添加也无效的处理方式,通过判断点击的dom元素和类名实现点击话题页面跳转)

 <span v-html="item.imgTexts[0].text"  @click.stop="goDetail(item.postId,item.carClub.carClubId)"></span> 

 // 富文本中的链接跳转
    goSearchList(event, id, clubId, postTypeId) {
      console.log(event.target.text);
      console.log(event.target.className); // testssss
      console.log(event.target.nodeName); // p

      if (event.target.nodeName === "A" && event.target.className === "topic") {
        //点击到的元素是a标签且是话题的属性的内容
        // 获取触发事件对象的属性
        console.log("进来了a标签1");
        let k = event.target.text.replace(/\#/g, "");
        let str = k.replace(/\#/g, "");
        if(str === this.topic){
          window.appAction('toast',['这已经是当前点击的话题列表了']);
        }else{
          console.log(
          "进来了正则匹配1#",
          `${EXPORT_URL}topic/topicDetail?topic=${k}`
        );
        window.appAction("goAdvertisement", [
          3,
          `${EXPORT_URL}topic/topicDetail?topic=${k}`
        ]);
        console.log("app1");
        }
      } else {
        postTypeId * 1 >= 100
          ? this.goDetail(id, clubId)
          : this.goPostDetail(postTypeId, id);
      }
    },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值