js 去除Quill富文本编辑器的首尾空行,空格

js中把Quill富文本编辑器的首尾空行,空格去掉

function format_rich_text__br(rich_text) {
    let reg = /<p><br><\/p>/gim;
    let t = [];
    let arr = [];
    while (t = reg.exec(rich_text)) {
        arr.push(t.index)
    }
    let start = 0;
    let end = rich_text.length;
    let m = 11;//空行的标签字符长度
    for (var n = 0;n < arr.length;n++) {
        if (arr[n] == n * m) {
            start = (n + 1) * m
        }
    }
    for (var n = arr.length;n > 0;n--) {
        if (arr[n - 1] == rich_text.length - ((arr.length - (n - 1)) * m)) {
            end = arr[n - 1]
        }
    }
    //若只有空行则直接 return text.slice(start, end)
    return rich_text.slice(start, end);
}

若空行中还有其他标签,比如添加了加粗,斜体等字体样式,还需继续处理,在removeBlankSpace函数中继续处理
如果有加粗样式设置的话,标签中会多出span标签和含有‘cursor’字符的属性,所以用span标签和cursor进行判断,

let empty = text.slice(start, end);
let other = empty.split('</p>').filter(item=>item !== '');
let html = '';
let array= [];
other.forEach((item,i)=>{
	if(i == 0 || i == other.length-1){
		if(item.indexOf('</span>') ==-1 || (item.indexOf('</span>') !==-1 && item.indexOf('cursor') ==-1)){
				arr.push(item);
			}
		}else{
			if(item.indexOf('br')==-1) arr.push(item);
		}
})
array.forEach(item=>{
	html += item + '</p>';
})
return html;

注:不能直接用‘></span>’去判断,因为富文本框中会默认生成一个字符,巨坑!!!!!所以要搭配到字符cursor一起判断
![在这里插入图片描述](https://img-blog.csdnimg.cn/4eb4895cca1d40cf83fecac4fa11411c.png
富文本编辑器中还可以添加很多样式,具体情况具体分析~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值