使用 Javascript 检测真实文本,而不是 HTML 标签

Using Javascript to detect real text, not HTML tags

我遇到一个问题,我使用所见即所得编辑器 (TinyMCE) 将内容保存到数据库中,有时保存的值不是真正的内容,而只是像这样的标签:

<p><br data-mce-bogus="1"></p>

这不是真正的内容。

所以我的应用程序无法判断什么时候有真实内容,什么时候有一些不可见的 HTML 标签。

如何使用 JS 可靠地检测何时存在真实内容或不可见标签?请注意,对“<br>”的简单检查将不起作用,因为可能存在其他属性,例如 data-mce-bogus="1",以及我以前从未见过的其他属性。

理想情况下,我的编辑器会在内容更新时检测到这一点,如果未检测到 "real" 内容,则在数据库中保存一个空字符串。我的应用程序在 Angular JS 中,所以我需要它在 JS 中,而不是服务器端。

只需删除标签而不触及它们的内容,然后检查是否还有剩余。

var text = '<p><br data-mce-bogus="1"></p>';

var clearRegexp = /<[^>]+>/g;

text = text.replace(clearRegexp, "");

var hasContent = text.trim() != "";