2015-05-01 37 views
0

我遇到了一個問題,我使用WYSIWYG編輯器(TinyMCE)將內容保存到數據庫中,有時值會保存爲不真實的內容,但只有標籤如:使用Javascript來檢測真實文本,而不是HTML標記

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

這是不是真正的內容。

因此,我的應用程序無法分辨何時存在真正的內容與某些不可見的HTML標記。

如何使用JS可靠地檢測何時存在真實內容或隱形標籤?請注意,對「<br>」的簡單檢查將不起作用,因爲可能存在其他屬性,如data-mce-bogus="1",以及其他我以前從未見過的屬性。

理想情況下,當內容更新時,我的編輯器會檢測到這一點,並且如果沒有檢測到「真實」內容,則在數據庫中保存一個空字符串。我的應用程序是在Angular JS中,所以我需要它在JS中,而不是服務器端。

+0

您可能需要定義「真實內容」。你的意思是你在TinyMCE編輯器中輸入原始的HTML,並將它剝離出來?或者爲了簡化:你在TinyMCE中輸入了什麼,你得到了什麼結果,以及期望的結果是什麼? –

+0

如果jQuery可用,您可以使用[$ .text()](http://api.jquery.com/text/) – Ted

回答

0

只需刪除標籤而不用修改其內容並檢查是否還有其他內容。

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

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

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

var hasContent = text.trim() != ""; 
相關問題