如何去除富⽂本中的html标签及vue、react、⼩程序
中的过滤器
在获取富⽂本后,⼜只要显⽰部分内容,需要去除富⽂本标签,然后再截取其中⼀部分内容;然后就是过滤器,在⼩程序中使⽤还是挺多次的,在vue及react中也遇到过
1.富⽂本去除html标签
去除html标签及空格
let richText = ' <p > sdaflsjf的丰富及饿哦塞尔</p><span>dsfjlie</span>';
/* 去除富⽂本中的html标签 */
/* *、+限定符都是贪婪的,因为它们会尽可能多的匹配⽂字,只有在它们的后⾯加上⼀个?就可以实现⾮贪婪或最⼩匹配。*/
let content = place(/<.+?>/g, '');
console.log(content);
/* 去除 */
content = place(/ /ig, '');
console.log(content);
/* 去除空格 */
content = place(/\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以上是⼀个字符占两位 */
react router 和vue routerif (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 = Month() + 1;
let Day = Date();
let Y = FullYear() + '年';
let M = Month < 10 ? '0' + Month + '⽉' : Month + '⽉';
let D = Day + 1 < 10 ? '0' + Day + '⽇' : Day + '⽇';
let hours = Hours();
let minutes = Minutes();
let hour = hours < 10 ? '0' + hours + ':' : hours + ':';
let minute = minutes < 10 ? '0' + minutes : minutes;
return Y + M + D + ' ' + hour + minute;
}
}
/* 使⽤,直接在div中添加就可以了,| 前⾯的是参数,后⾯的是过滤器 */
<div class="time">{{ime | localData}}</div>
3.⼩程序中使⽤过滤器
新建.wxs⽂件
var localData = function (value) {
var date = getDate(value * 1000);
var Month = Month() + 1;
var Day = Date();
var hours = Hours(); //计算剩余的⼩时
var minutes = Minutes(); //计算剩余的分钟
var Y = FullYear() + '-';
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;
}
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";
msg : some_msg,
}
</wxs>
<view> {{foo.msg}} </view>
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={pImg} alt="" />
总结
以上所述是⼩编给⼤家介绍的如何去除富⽂本中的html标签及vue、react、⼩程序中的过滤器,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。在此也⾮常感谢⼤家对⽹站的⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论