2013-05-27 40 views
2

如何检查富文本编辑器中的空文本?检查富文本编辑器中的空文本

我有一个富文本,类似于我正在打字的那个。

默认情况下,该值设置为<br>所以,在Java中,当我检查request.getParameter("desc");我将获得价值为<br>

我要检查空字符串,包括像刚才<br><hr>

任何HTML标记

这可能吗?

+3

是的。你试过什么了? –

+0

尝试过'descStr = StringEscapeUtils.escapeHtml(descStr);'但是这会转换为'<br>'为'
'。我期待一个空的空间或行,我可以做'descStr.length == 0'来检查它是否为空,所以这没有为我工作。有没有简单的方法来解决,如果不是,我将不得不改变解决方案。 – Nithy

+0

@Andrew,你会推荐将富文本编辑器的内容存储在一个隐藏的字段中,因为任何类型的类型都可以,并将它传递给后端可以做到这一点。我从来没有尝试过,但只是想到了,否则它会一样。 – Nithy

回答

3

使用HTML解析器,如Jsoup

String text = Jsoup.parse(html).text(); 

if (text.isEmpty()) { 
    // No text. 
} 

额外的好处是,它也可以帮助你与sanitizing HTML避免XSS攻击,当恶意终端用户例如进入一个<script>在您的文本区域。你也在检查,对不对?

+0

感谢您的快速回复。这是一个精确的解决方案,并且很高兴了解该库。清理HTML是我遇到的另一个问题,并且想到下一个发布,并且您保存了我的夜晚。再次感谢。 – Nithy

1

也许头脑简单,但只是删除所有标记单词(包括图像和按钮)。

public static boolean isEmpty(String text) { 
    return text.replaceAll("<[^>]+>", "").trim().isEmpty(); 
} 

也许用replaceAll删除空格和换行符。

假设非标签<作为实体&lt;给出。

+0

这很有趣。我将BalusC建议的Jsoup合并在一起,检查嵌入的html内容,并提出清理文本中的标记的建议,并做了一些技巧。谢谢你。但我认为Jsoup似乎已经内置了已经使用WhiteList的程序,并且看起来有干净的方式来清理html标签,所以我将继续使用该解决方案。感谢您的回应。 – Nithy