小程序中,给一段富文本字符串文案特殊内容加样式监听点击事件

  1. 我的需求是给一段富文本的手机号和地址加样式并可拨打电话,导航地址;
  2. mp-html用的富文本插件是这个;
  3. 自己用正则把需要特殊标记的内容提取出来,如需要提取手机号,地址等,如下用标签<a href="#"  data-type="phone" data-content="电话" style="color: #0088cc; text-decoration: underline;">电话</a>显示;
  4.     //处理地址   
        let processedStr = str.replace(/位于([^。;,,]+?)(?=[。;,,]|$)/g,
          (match, address) => {
            return `位于<a href="#" data-type="address" data-address="${address}" style="color: #0088cc; text-decoration: underline;">${address}</a>`;
          }
        );
    
    
        // 处理电话号码
        processedStr = processedStr.replace(phoneReg, (match) => {
          // 保持原始显示格式,但去除横线用于拨号  这里用a标签代替拨打手机号
          const purePhone = match.replace(/-/g, '');
          return `<a href="#" data-type="phone" data-phone="${purePhone}" style="color: #0088cc; text-decoration: underline;">${match}</a>`;
        });
    
        return processedStr;
    <mp-html content="{{item.answer}}"
             bindlinktap="linktap"
             selectable="true"
             bindimgtap="imgtap" />
    <!-- bindlinktap可监听到a标签的点击事件 -->
    <!-- bindimgtap可监听到图片预览事件 -->

  5. 给mp-html添加bindlinktap="linktap",bindlinktap事件可以监听到a标签的点击,通过type属性来判断内容类型,就可以监听到类型去处理对应的逻辑;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值