有什么方法可以删除 Quill 中的特定格式吗?
Is there any way to remove specific formatting in Quill?
给定 Quill 1.3.6
和其中的自定义格式化程序,有没有办法以编程方式从整个编辑器中删除所有自定义格式?换句话说,是否有任何方法可以从文档中出现的每个地方删除例如 bold
格式?
quill.removeFormat()
似乎不是这个选项,因为它没有为您提供按格式过滤。
有什么想法吗?
我正在对 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']
});
我能够想出这样的解决方案(这似乎没有很好的性能,但做了我需要的)。
const deltas = quill.getContents().map(delta => {
const attributes = delta.attributes;
if (attributes) {
delete attributes['<YOUR ATTRIBUTE TO DELETE>'];
}
return delta;
});
quill.setContents(deltas);
如果将 false
作为值参数传递给 format
函数,则可以删除特定类型的格式。
例如format('bold', false)
从当前选定的文本中删除粗体(但没有其他格式)。或者 formatText(0, 100, 'bold', false)
删除前 100 个字符的粗体格式。
这是在 API 文档中指定的(尽管它仅出现在 formatLine
和 formatText
中,但它也适用于格式):https://quilljs.com/docs/api/#formatting
给定 Quill 1.3.6
和其中的自定义格式化程序,有没有办法以编程方式从整个编辑器中删除所有自定义格式?换句话说,是否有任何方法可以从文档中出现的每个地方删除例如 bold
格式?
quill.removeFormat()
似乎不是这个选项,因为它没有为您提供按格式过滤。
有什么想法吗?
我正在对 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']
});
我能够想出这样的解决方案(这似乎没有很好的性能,但做了我需要的)。
const deltas = quill.getContents().map(delta => {
const attributes = delta.attributes;
if (attributes) {
delete attributes['<YOUR ATTRIBUTE TO DELETE>'];
}
return delta;
});
quill.setContents(deltas);
如果将 false
作为值参数传递给 format
函数,则可以删除特定类型的格式。
例如format('bold', false)
从当前选定的文本中删除粗体(但没有其他格式)。或者 formatText(0, 100, 'bold', false)
删除前 100 个字符的粗体格式。
这是在 API 文档中指定的(尽管它仅出现在 formatLine
和 formatText
中,但它也适用于格式):https://quilljs.com/docs/api/#formatting