如何测试CK编辑器字段是否为空

Sea*_*ull 7 xpages

我想测试一个CKEditor(Rich Text)字段是否为空,作为某些业务逻辑的一部分.我不想使用内置的验证功能.

如果CK编辑器字段之前有文本,然后删除此文本,则仍然有内容,例如

<p dir="ltr">
 &nbsp;</p>
Run Code Online (Sandbox Code Playgroud)

我可以使用以下方法获取此文本字符串的句柄:

dataVar = xspdoc.getDocument().getMIMEEntity(dataNamevar).getContentAsText();
Run Code Online (Sandbox Code Playgroud)

有没有办法测试CKEditor字段是否没有可见文本?

And*_*ack 2

从技术上讲,如果它具有相当于您在问题中所示的单个可见换行符的内容,那么它并不是真正的“空”。

实际上,您必须解析内容值,以找出是否有内容不在标签内或少数特殊字符之类的内容。

如果必须的话,我倾向于在 js 中执行此操作,方法是获取整个文本字符串并将其拆分为基于“<”的数组,然后获取数组的每个元素并删除“>”左侧的文本,然后修剪。这给我留下了一个空字符串或任何标签之外的文本的数组。从那里可以很容易地检查数组中的任何字符串,看看它们是否不为空,而不是“”。

这可能比一些我不知道的内置解析器更麻烦,但它相当可靠和快速。(并且也可以在公式语言中使用非常相似的方法)。

在 ssjs 公式中你可以:

var checkString = @trim(@replacesubstring(@implode( @trim (@right( @explode( sourceHTMLstring , "<" ) , ">" ) ) , " "), "&nbsp;" , ""));

if(checkstring == "") {
        //  *** You have no content 
} else {
        // ***  you have content
}
Run Code Online (Sandbox Code Playgroud)

显然,这可以在纯 JavaScript 中轻松完成,但旧的公式语言在我的脑海中根深蒂固,我会出于习惯而这样做。

** 另请注意:您可能需要检查其中某处的 <img> 标记,以防有人除了将图像放入富文本中之外什么也没做。