在获取富文本后,又只要显示部分内容,需要去除富文本标签,然后再截取其中一部分内容;然后就是过滤器,在微信小程序中使用还是挺多次的,在vue及react中也遇到过
1.富文本去除html标签
去除html标签及 空格
let richtext = '
sdaflsjf的丰富及饿哦塞尔
dsfjlie';/* 去除富文本中的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中添加就可以了,| 前面的是参数,后面的是过滤器 */
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
}
使用,用标签来引入,src为路径,module为引入的文件模块名
{{tool.filterscore(item.shop.score)}}分
直接在.wxml文件中用包裹
var some_msg = "hello world";
module.exports = {
msg : some_msg,
}
{{foo.msg}}
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;
};
/* 使用 */
总结
以上所述是小编给大家介绍的如何去除富文本中的html标签及vue、react、微信小程序中的过滤器,希望对大家有所帮助
希望与广大网友互动??
点此进行留言吧!