如何验证CKEditor 5编辑器中的内容?

时间:2018-05-20 23:11:09

标签: javascript ckeditor ckeditor5

我试图找出如何从编辑器验证内容,例如,确保内容的长度至少为200个字符。通常,使用常规textarea,我可以检索值并从那里验证它。根据我的理解,这并不容易。

2 个答案:

答案 0 :(得分:2)

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

/**
 * 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/

答案 1 :(得分:-1)

CKeditor有自己的内置函数,用于在文本编辑器中检索数据:

textbox_data = CKEDITOR.instances.mytextbox.getData();//mytextbox is id of textarea 

然后你可以使用字符串对象的长度属性:

alert(str.length);