javascript - 我如何验证来自 CKEditor 5 编辑器的内容?

标签 javascript ckeditor ckeditor5

我正在尝试找出如何验证来自编辑器的内容,例如,确保内容的长度至少为 200 个字符。通常,使用常规文本区域,我可以检索值并从那里验证它。据我了解,这并不容易。

最佳答案

我写了一个简单的函数,可以让你计算文档中插入了多少个字符。

/**
 * Returns length of the text inserted to the specified document.
 *
 * @param {module:engine/model/document~Document} document
 * @returns {Number}
 */
function countCharacters( document ) {
    const rootElement = document.getRoot();

    return countCharactersInElement( rootElement );

    // Returns length of the text in specified `node`
    //
    // @param {module:engine/model/node~Node} node
    // @returns {Number}
    function countCharactersInElement( node ) {
        let chars = 0;

        for ( const child of node.getChildren() ) {
            if ( child.is( 'text' ) ) {
                chars += child.data.length;
            } else if ( child.is( 'element' ) ) {
                chars += countCharactersInElement( child );
            }
        }

        return chars;
    }
}

您可以在此处查看它的工作原理 – https://jsfiddle.net/pomek/kb2mv1fr/ .

关于javascript - 我如何验证来自 CKEditor 5 编辑器的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50440196/

相关文章:

javascript - 如何限制矩形在 fabricjs 中调整大小/移动到图像之外?

javascript - 如何在 CKEditor 中修改元素

javascript - 从 ckeditor 5 获取 xml

grails - 如何让Grails不逃避CK编辑器生成的html标签

javascript - 如何在React Js中显示CKEditor5保存的内容

nuxt.js - 如何使用ssr在nuxt中添加ckeditor插件

javascript - AngularJS - 如何使用 ng-repeat 重复列表中的每 2 个项目?

javascript - Jquery验证: How to validate that all or none of a group of textboxes have values?

javascript - AngularJS $scope.$在多个事件上

javascript - 如何使 CKEditor textarea 刷新/更新客户端更改?