js 提取html 文字、转义字符

js 提取html 文字、转义字符产品经理提出了想要一个富文本形式的商品描述,一开始想的很简单,只需在后台加一个富文本,小程序端只需将在商品卡片出将html将标签去掉,这时候问题来了,测试加了许多双引号,空格之类的导致出现了问题

前言

产品经理提出了想要一个富文本形式的商品描述,一开始想的很简单,只需在后台加一个富文本,小程序端只需将在商品卡片出将html将标签去掉,这时候问题来了,测试加了许多双引号,空格之类的,导致我的商品卡片出现了转义字符,这是不能容忍的

具体思路

  • 后台加上富文本编辑区
  • 小程序端商品卡片出进行html处理(这里引出了js对html文字、记转义字符的处理)
- 去除标签
- 转义字符反转义
  • 小程序中利用rich-txt渲染html

后台加上富文本编辑器我在这就不阐述了,这里主要介绍对html的处理及渲染html

js提取html 及 处理转义字符

代码如下:

工具方法

const rexFilter = (originString) => {
  // js 处理转义字符
  var result = originString.replace(/&([^&;]+);/g, function (matchStr, b) { 
    var entity = {
      nbsp: ' ',
      quot: '"',
      lt: '<',
      gt: '>',
      apos: "'",
      amp: '&',
      ldquo: '“',
      rdquo: '”'
    };
    var r = entity[b];
    return typeof r === 'string' ? r : matchStr;
  });
  result = result.replace(/<[^<>]+>/g, "") // js去除标签
  return result;
}

商品卡片代码

 <van-card
  centered="true"
  class="product-bag-card"
  title="{{product.goodsTitle}}"
  thumb="{{product.goodsUrl}}"
  data-goods="{{product}}"
  bindtap="showPupop"
  price="{{product.price}}"
  origin-price="{{product.historyPrice}}"
  desc="{{product.describes}}"
>

...
item.describes = rexFilter(item.describes);

商品详情

<rich-text nodes="{{productDetail.describes}}"></rich-text>

实现效果

image.png

image.png

今天的文章js 提取html 文字、转义字符分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/20196.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注