從 CKEDITOR 獲取純文字時踩到的坑

2021-09-19 23:59:22 字數 972 閱讀 2209

在做專案時需要做字元長度的驗證,需要獲取 ckeditor 中的純文字。

由於 ckeditor 是富文字編輯器,直接用ckeditor.instances.editor.getdata()得到的是含有html標籤的內容。但是驗證字元長度並不能包含html標籤,需要獲取純文字。

ckeditor 提供了gettext的方法用於獲取純文字,可是得到的卻是整個body標籤內的內容,網上搜尋了一下大多提供的方法都是一樣。起初還以為是版本原因,api 被廢棄了,到官網一查文件發現並不是。後來偶然中發現,原因是因為我用的是 inline 模式,而非 stand 模式。

如果是 stand 模式,可以使用ckeditor.instances.editor.document.getbody().gettext()方法獲取純文字。

如果是 inline 模式,使用ckeditor.instances.editor.document.getbody().gettext()得到的則是整個網頁body內的內容。inline 模式應使用ckeditor.instances.editor.container.gettext()方法。

當 stand 模式的實現方式iframedocument屬性引用的是iframegetbody後得到的是iframe中的內容,自然是我們想要的。

而 inline 則不是,是用div包裹內容,document屬性所引用的是div的父document,也即整個文件。所以當 inline 模式時應使用container屬性。

從html富文字中提取純文字

其實從html富文字中提取純文字很簡單,富文字基本上是使用html標籤給文字加上豐富多彩的樣式。所以只需要將富文字字串中的 標籤剔除,即可得到純文字。我們可以使用正規表示式,來匹配所有的html標籤,並替換成空字元,如下 html剔除富文字標籤,留下純文字 function get text htm...

django 後台從富文字提取純文字

很多時候我們都會用富文字,比如說在版權區 部落格文章編輯時等等。但是如果我們要做乙個搜尋的功能,去從富文字中查詢關鍵字,就需要將富文字中的文字了。但是 django 並沒有專門函式去做。這個時候我們就需要使用正則或者是提取前端的過濾器 striptags 方法。import re content j...

從html頁面獲取純文字檔案替換其中的內容

通過nsstring裡面的 stringwithcontentsofurl來實現 通過nsstring獲取網頁的源 nsstring webstring nsstringstringwithcontentsofurl nsurlurlwithstring encoding nsutf8stringe...