如何去除富文本中的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 相关文章推荐
高性能WEB开发 flush让页面分块,逐步呈现 flush让页面分块,逐步呈现
Jun 19 Javascript
Js点击弹出下拉菜单效果实例
Aug 12 Javascript
JavaScript中获取样式的原生方法小结
Oct 08 Javascript
jQuery对于显示和隐藏等常用状态的判断方法
Dec 13 Javascript
WEB前端实现裁剪上传图片功能
Oct 17 Javascript
浅谈js script标签中的预解析
Dec 30 Javascript
详解如何提高 webpack 构建 Vue 项目的速度
Jul 03 Javascript
Angular 2父子组件数据传递之局部变量获取子组件其他成员
Jul 04 Javascript
解决vue中使用Axios调用接口时出现的ie数据处理问题
Aug 13 Javascript
angularjs使用div模拟textarea文本框的方法
Oct 02 Javascript
微信小程序使用scroll-view标签实现自动滑动到底部功能的实例代码
Nov 09 Javascript
layui写后台表格思路和赋值用法详解
Nov 14 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
smarty静态实验表明,网络上是错的~呵呵
2006/11/25 PHP
php中socket通信机制实例详解
2015/01/03 PHP
百度工程师讲PHP函数的实现原理及性能分析(二)
2015/05/13 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
Thinkphp整合阿里云OSS图片上传实例代码
2019/04/28 PHP
JS 有名函数表达式全面解析
2010/03/19 Javascript
输入自动提示搜索提示功能的javascript:sugggestion.js
2013/09/02 Javascript
jQuery 属性选择器element[herf*='value']使用示例
2013/10/20 Javascript
js实现字符串转日期格式的方法
2015/05/20 Javascript
js绘制圆形和矩形的方法
2015/08/05 Javascript
AngularJS获取json数据的方法详解
2017/05/27 Javascript
JS分页的实现(同步与异步)
2017/09/16 Javascript
Django中使用jquery的ajax进行数据交互的实例代码
2017/10/15 jQuery
Vue实现active点击切换方法
2018/03/16 Javascript
iconfont的三种使用方式详解
2018/08/05 Javascript
vue里input根据value改变背景色的实例
2018/09/29 Javascript
vue如何根据网站路由判断页面主题色详解
2018/11/02 Javascript
vue项目中全局引入1个.scss文件的问题解决
2019/08/01 Javascript
解决Angularjs异步操作后台请求用$q.all排列先后顺序问题
2019/11/29 Javascript
如何利用node转发请求详解
2020/09/17 Javascript
PyMongo安装使用笔记
2015/04/27 Python
理解Python中的绝对路径和相对路径
2017/08/30 Python
在django模板中实现超链接配置
2019/08/21 Python
Python scipy的二维图像卷积运算与图像模糊处理操作示例
2019/09/06 Python
Python笔记之工厂模式
2019/11/20 Python
解决Jupyter无法导入已安装的 module问题
2020/04/17 Python
深入理解css属性的选择对动画性能的影响
2016/04/20 HTML / CSS
英国团购网站:Groupon英国
2017/11/28 全球购物
通往英国高街的商店橱窗:Down Your High Street
2020/07/19 全球购物
奖学金自我鉴定范文
2013/10/03 职场文书
应用艺术毕业生的自我评价
2013/12/04 职场文书
转党组织关系介绍信
2014/01/08 职场文书
员工工作表扬信范文
2014/01/13 职场文书
关于母亲节的感言
2014/02/04 职场文书
python编程项目中线上问题排查与解决
2021/11/01 Python
「海贼王」112.9万粉丝纪念图标公布
2022/03/21 日漫