如何去除富文本中的html标签及vue、react、微信小程序中的过滤器


Posted in Javascript onNovember 21, 2018

在获取富文本后,又只要显示部分内容,需要去除富文本标签,然后再截取其中一部分内容;然后就是过滤器,在微信小程序中使用还是挺多次的,在vue及react中也遇到过

1.富文本去除html标签

去除html标签及 空格

let richText = ' <p style="font-size: 25px;color: white">       sdaflsjf的丰富及饿哦塞尔</p><span>dsfjlie</span>';
/* 去除富文本中的html标签 */
/* *、+限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配。*/
let content = richText.replace(/<.+?>/g, '');
console.log(content);
/* 去除  */
content = content.replace(/ /ig, '');
console.log(content);
/* 去除空格 */
content = content.replace(/\s/ig, '');
console.log(content);

截取字符串

content = formatRichText(content);
console.log(content);
/* 使用substring来截取字符串 */
if (content.length > 10) {
  content = content.substring(0, 10) + '...';
}
console.log(content);
/* 限制字数后添加省略号 */
function formatRichText(richText) {
  let temporaryText = '';
  /* 设置多长后添加省略号 */
  const len = 142;
  if (richText.length * 2 <= len) {
    return richText;
  }
  /* 用于记录文字内容的总长度 */
  let strLength = 0;
  for (let i = 0; i < richText.length; i++) {
    temporaryText = temporaryText + richText.charAt(i);
    /* charCodeAt()返回指定位置的字符的Unicode编码,值为128以下时一个字符占一位,当值在128以上是一个字符占两位 */
    if (richText.charCodeAt(i) > 128) {
      strLength = strLength + 2;
      if (strLength >= len) {
        return temporaryText.substring(0, temporaryText.length - 1) + "...";
      }
    } else {
      strLength = strLength + 1;
      if (strLength >= len) {
        return temporaryText.substring(0, temporaryText.length - 2) + "...";
      }
    }
  }
  return temporaryText;
}

2.vue中使用过滤器

filters: {
  localData(value) {
    let date = new Date(value * 1000);
    let Month = date.getMonth() + 1;
    let Day = date.getDate();
    let Y = date.getFullYear() + '年';
    let M = Month < 10 ? '0' + Month + '月' : Month + '月';
    let D = Day + 1 < 10 ? '0' + Day + '日' : Day + '日';
    let hours = date.getHours();
    let minutes = date.getMinutes();
    let hour = hours < 10 ? '0' + hours + ':' : hours + ':';
    let minute = minutes < 10 ? '0' + minutes : minutes;
    return Y + M + D + ' ' + hour + minute;
  }
}
 
/* 使用,直接在div中添加就可以了,| 前面的是参数,后面的是过滤器 */
<div class="time">{{data.etime | localData}}</div>

3.微信小程序中使用过滤器

新建.wxs文件

var localData = function (value) {
  var date = getDate(value * 1000);
  var Month = date.getMonth() + 1;
  var Day = date.getDate();
  var hours = date.getHours(); //计算剩余的小时
  var minutes = date.getMinutes(); //计算剩余的分钟
  var Y = date.getFullYear() + '-';
  var M = Month < 10 ? '0' + Month + '-' : Month + '-';
  var D = Day + 1 < 10 ? '0' + Day + '' : Day + '';
  var H = hours < 10 ? '0' + hours + ':' : hours + ':'
  var m = minutes < 10 ? '0' + minutes : minutes;
  return Y+M + D + "  " + H + m;
}
module.exports = {
  localData: localData
}

使用,用<wxs />标签来引入,src为路径,module为引入的文件模块名

<wxs src="./filters.wxs" module="tool" />
<text class="scoreText">{{tool.filterScore(item.shop.score)}}分</text>

直接在.wxml文件中用<wxs></wxs>包裹

<wxs module="foo">
var some_msg = "hello world";
module.exports = {
  msg : some_msg,
}
</wxs>
<view> {{foo.msg}} </view>

4.react中使用

react中使用,其实就是定义一个方法

import noBanner from '@/assets/storeDetail/no-banner.jpg'
const filterImg = item => {
  let bgImg;
  if (item.shopimages == null) {
    bgImg = noBanner;
  } else {
    bgImg = item.shopimages[0];
  }
  return bgImg;
};
/* 使用 */ 
<img src={filterImg(storeitem)} className={style.topImg} alt="" />

总结

以上所述是小编给大家介绍的如何去除富文本中的html标签及vue、react、微信小程序中的过滤器,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript DOM 学习第三章 内容表格
Feb 19 Javascript
多浏览器支持的右下角浮动窗口
Apr 01 Javascript
js中AppendChild与insertBefore的用法详细解析
Dec 16 Javascript
jQuery实现视频作为全屏幕背景
Dec 18 Javascript
JavaScript原型及原型链终极详解
Jan 04 Javascript
javascript代码调试之console.log 用法图文详解
Sep 30 Javascript
JavaScript数组去重的几种方法效率测试
Oct 23 Javascript
Bootstrap组件之下拉菜单,多级菜单及按钮布局方法实例
May 25 Javascript
vue2.0+koa2+mongodb实现注册登录
Apr 10 Javascript
js canvas实现二维码和图片合成的海报
Nov 19 Javascript
微信小程序去除左上角返回键的实现方法
Mar 06 Javascript
antd vue table跨行合并单元格,并且自定义内容实例
Oct 28 Javascript
JSON生成Form表单的方法示例
Nov 21 #Javascript
apicloud拉起小程序并传递参数的方法示例
Nov 21 #Javascript
vue中组件的过渡动画及实现代码
Nov 21 #Javascript
详解promise.then,process.nextTick, setTimeout 以及 setImmediate的执行顺序
Nov 21 #Javascript
Nuxt.js之自动路由原理的实现方法
Nov 21 #Javascript
nuxt.js中间件实现拦截权限判断的方法
Nov 21 #Javascript
Nuxt.js SSR与权限验证的实现
Nov 21 #Javascript
You might like
仿Aspnetpager的一个PHP分页类代码 附源码下载
2012/10/08 PHP
改写ThinkPHP的U方法使其路由下分页正常
2014/07/02 PHP
PHP实现可精确验证身份证号码的工具类示例
2018/05/31 PHP
php判断数组是否为空的实例方法
2020/05/10 PHP
jquery中常用的SET和GET
2009/01/13 Javascript
jquery打开直接跳到网页最下面、最低端实现代码
2013/04/22 Javascript
jquery实现简单的自动播放幻灯片效果
2015/06/13 Javascript
kindeditor编辑器点中图片滚动条往上顶的bug
2015/07/05 Javascript
向JavaScript的数组中添加元素的方法小结
2015/10/24 Javascript
JS排序方法(sort,bubble,select,insert)代码汇总
2016/01/30 Javascript
JavaScript中的toString()和toLocaleString()方法的区别
2017/02/15 Javascript
js仿淘宝评价评分功能
2017/02/28 Javascript
javascript实现table单元格点击展开隐藏效果(实例代码)
2017/04/10 Javascript
H5图片压缩与上传实例
2017/04/21 Javascript
微信小程序wx:for和wx:for-item的用法详解
2018/04/01 Javascript
运用js实现图层拖拽的功能
2019/05/24 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
JS删除对象中某一属性案例详解
2020/09/08 Javascript
python黑魔法之参数传递
2016/02/12 Python
python 实现UTC时间加减的方法
2018/12/31 Python
python3读取autocad图形文件.py实例
2020/06/05 Python
详解torch.Tensor的4种乘法
2020/09/03 Python
CSS3对背景图片的裁剪及尺寸和位置的设定方法
2016/03/07 HTML / CSS
CSS3的颜色渐变效果的示例代码
2017/09/29 HTML / CSS
HTML5 File接口在web页面上使用文件下载
2017/02/27 HTML / CSS
Gucci法国官方网站:意大利奢侈品牌
2018/07/25 全球购物
输入N,打印N*N矩阵
2012/02/20 面试题
家长给孩子的评语
2014/01/30 职场文书
一名老师的自我评价
2014/02/07 职场文书
综合实践活动总结
2014/05/05 职场文书
司法局群众路线教育实践活动整改措施思想汇报
2014/10/13 职场文书
事业单位年度考核评语
2014/12/31 职场文书
2015学校年度工作总结
2015/05/11 职场文书
呼啸山庄读书笔记
2015/06/29 职场文书
2016年读书月活动总结范文
2016/04/06 职场文书
python中pymysql包操作数据库方法
2022/04/19 Python