为了账号安全,请及时绑定邮箱和手机立即绑定

有什么方法可以删除 Quill 中的特定格式吗?

有什么方法可以删除 Quill 中的特定格式吗?

HUX布斯 2023-09-07 16:10:04
给定Quill 1.3.6其中的自定义格式化程序,是否有任何方法可以以编程方式从整个编辑器中删除所有自定义格式?换句话说,是否有任何方法可以删除bold文档中出现的每个位置的格式?quill.removeFormat()似乎不是这个选项,因为它没有为您提供按格式过滤器。任何想法?
查看完整描述

3 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

如果将false值参数传递给format函数,则可以删除特定类型的格式。

例如,format('bold', false)从当前选定的文本中删除粗体(但没有其他格式)。或者formatText(0, 100, 'bold', false)删除前 100 个字符的粗体格式。


查看完整回答
反对 回复 2023-09-07
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

我正在使用 npm 包 sanitize-html 做类似的事情。


您的用例的示例:


import sanitizeHtml from 'sanitize-html';

const dirtyText = '<p>My <strong>dirty</strong> text</p>';

const cleanText = sanitizeHtml(dirtyText, {

  exclusiveFilter: (frame) => frame.tag !== 'strong'

});

否则,您可以(我认为更好)列出您允许使用“allowedTags”属性的标签:


import sanitizeHtml from 'sanitize-html';

const dirtyText = '<p>My <strong>dirty</strong> text</p>';

const cleanText = sanitizeHtml(dirtyText, {

  allowedTags: ['span', 'p', 'h2', 'a', 'u', 'em', 's']

});


查看完整回答
反对 回复 2023-09-07
?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

我能够想出这样的解决方案(这似乎没有很好的性能,但做了我需要的事情)。


const deltas = quill.getContents().map(delta => {

    const attributes = delta.attributes;

    if (attributes) {

        delete attributes['<YOUR ATTRIBUTE TO DELETE>'];

    }


    return delta;

});

quill.setContents(deltas);


查看完整回答
反对 回复 2023-09-07
  • 3 回答
  • 0 关注
  • 108 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信