如何去除富文本中的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 Date对象使用总结
May 14 Javascript
读jQuery之六 缓存数据功能介绍
Jun 21 Javascript
JavaScript之引用类型介绍
Aug 10 Javascript
jquery获取子节点和父节点的示例代码
Sep 10 Javascript
js使用递归解析xml
Dec 12 Javascript
node.js中的fs.chownSync方法使用说明
Dec 16 Javascript
Javascript中for循环语句的几种写法总结对比
Jan 23 Javascript
JS原型与原型链的深入理解
Feb 15 Javascript
jQuery remove()过滤被删除的元素(推荐)
Jul 18 jQuery
Vue框架中正确引入JS库的方法介绍
Jul 30 Javascript
jQuery获取复选框选中的当前行的某个字段的值
Sep 15 jQuery
浅谈ajax在jquery中的请求和servlet中的响应
Jan 22 jQuery
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
ThinkPHP3.0略缩图不能保存到子目录的解决方法
2012/09/30 PHP
ThinkPHP后台首页index使用frameset时的注意事项分析
2014/08/22 PHP
PHP中SESSION的注销与清除
2015/04/16 PHP
PHP面向对象五大原则之开放-封闭原则(OCP)详解
2018/04/04 PHP
php实现将数据做成json的格式给前端使用
2018/08/21 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
2020/02/21 PHP
$.ajax json数据传递方法
2008/11/19 Javascript
js 深拷贝函数
2008/12/04 Javascript
通用javascript脚本函数库 方便开发
2009/10/13 Javascript
jquery 插件学习(一)
2012/08/06 Javascript
window.event.keyCode兼容IE和Firefox实现js代码
2013/05/30 Javascript
JS代码同步文本框内容的实例方法
2013/07/12 Javascript
js中substring和substr的详细介绍与用法
2013/08/29 Javascript
PHP PDO操作总结
2014/11/17 Javascript
JavaScript常用字符串与数组扩展函数小结
2016/04/24 Javascript
JQuery.dataTables表格插件添加跳转到指定页
2017/06/09 jQuery
基于Vue渲染与插件的加载顺序的问题详解
2018/03/05 Javascript
[02:18]《我与DAC》之工作人员:为了热爱DOTA2的玩家们
2018/03/28 DOTA
[01:07:13]TNC vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
PYTHON正则表达式 re模块使用说明
2011/05/19 Python
Python FTP操作类代码分享
2014/05/13 Python
pycharm 使用心得(七)一些实用功能介绍
2014/06/06 Python
Python实现的删除重复文件或图片功能示例【去重】
2019/04/23 Python
python实现XML解析的方法解析
2019/11/16 Python
使用python实现飞机大战游戏
2020/03/23 Python
英语商务邀请函范文
2014/01/16 职场文书
酒店保安领班职务说明书
2014/03/04 职场文书
幼儿园大班家长评语
2014/04/17 职场文书
个人师德师风自我剖析材料
2014/09/29 职场文书
离婚协议书格式
2015/01/26 职场文书
2015年团队工作总结范文
2015/05/04 职场文书
工作调动申请报告
2015/05/18 职场文书
光荣之路观后感
2015/06/12 职场文书
2015入党自传格式范文
2015/06/26 职场文书
MySQL基于索引的压力测试的实现
2021/11/07 MySQL
MySQL主从切换的超详细步骤
2022/06/28 MySQL