在获取富文本后,又只要显示部分内容,需要去除富文本标签,然后再截取其中一部分内容;然后就是过滤器,在微信小程序中使用还是挺多次的,在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>
直接在.w 文件中用<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、微信小程序中的过滤器,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
继续阅读与本文标签相同的文章
上一篇 :
比特币玩家如何选择数字钱包
-
参加测试即可领阿里云200元通用代金券(非常简单),可用于抵扣续费,升级,后付费费用等,
2026-05-19栏目: 教程
-
带你了解什么是Push消息推送
2026-05-19栏目: 教程
-
5分钟搞清楚Synchronized和Lock的概念与区别
2026-05-19栏目: 教程
-
虚拟主机和云服务器的区别
2026-05-19栏目: 教程
-
Flink 1.9 实战:使用 SQL 读取 Kafka 并写入 MySQL
2026-05-19栏目: 教程
