如何去除富文本中的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 相关文章推荐
Hutia 的 JS 代码集
Oct 24 Javascript
DHTML 中的绝对定位
Nov 26 Javascript
JQuery Tips相关(1)----关于$.Ready()
Aug 14 Javascript
基于jquery css3实现点击动画弹出表单源码特效
Aug 31 Javascript
js性能优化技巧
Nov 29 Javascript
谈一谈JS消息机制和事件机制的理解
Apr 14 Javascript
jQuery ajax MD5实现用户注册即时验证功能
Oct 11 Javascript
Angular2 多级注入器详解及实例
Oct 30 Javascript
JS打印彩色菱形的实例代码
Aug 15 Javascript
angularjs中判断ng-repeat是否迭代完的实例
Sep 12 Javascript
jQuery实现ajax的嵌套请求案例分析
Feb 16 jQuery
深入理解 JS 垃圾回收
Jun 03 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
php 读取文件乱码问题
2010/02/20 PHP
php中global和$GLOBALS[]的分析之一
2012/02/02 PHP
php实现商城购物车的思路和源码分析
2020/07/23 PHP
JavaScript对象模型-执行模型
2008/04/28 Javascript
Firefox下提示illegal character并出现乱码的原因
2010/03/25 Javascript
jQuery实现的立体文字渐变效果
2010/05/17 Javascript
JS设置获取cookies的方法
2014/01/26 Javascript
JS实现的用来对比两个用指定分隔符分割的字符串是否相同
2014/09/19 Javascript
jQuery中closest()函数用法实例
2015/01/07 Javascript
JavaScript实现基于十进制的四舍五入实例
2015/07/17 Javascript
VUEJS实战之利用laypage插件实现分页(3)
2016/06/13 Javascript
JavaScript对象数组排序实例方法浅析
2016/06/15 Javascript
详细分析Javascript中创建对象的四种方式
2016/08/17 Javascript
基于vue的换肤功能的示例代码
2017/10/10 Javascript
基于Datatables跳转到指定页的简单实例
2017/11/09 Javascript
浅谈react-router HashRouter和BrowserRouter的使用
2017/12/29 Javascript
vue里面父组件修改子组件样式的方法
2018/02/03 Javascript
LayUI switch 开关监听 获取属性值、更改状态的方法
2019/09/21 Javascript
[00:50]2014DOTA2国际邀请赛 NEWBEE战队回顾
2014/08/01 DOTA
用Python实现QQ游戏大家来找茬辅助工具
2014/09/14 Python
python实现堆栈与队列的方法
2015/01/15 Python
Python3实现Web网页图片下载
2016/01/28 Python
Python入门_浅谈数据结构的4种基本类型
2017/05/16 Python
简单了解Django模板的使用
2017/12/20 Python
pandas 按照特定顺序输出的实现代码
2018/07/10 Python
Python3 执行系统命令并获取实时回显功能
2019/07/09 Python
python 并发下载器实现方法示例
2019/11/22 Python
pytorch中的weight-initilzation用法
2020/06/24 Python
python线性插值解析
2020/07/05 Python
瑞典网上购买现代和复古家具:Reforma
2019/10/21 全球购物
PHP如何自定义函数
2016/09/16 面试题
股份合作协议书
2014/04/12 职场文书
搞笑欢迎词大全
2015/09/30 职场文书
Python中OpenCV实现简单车牌字符切割
2021/06/11 Python
一级电子管军用接收机测评
2022/04/05 无线电
Win2008系统搭建DHCP服务器
2022/06/25 Servers