Как получить текст из редактора summernote?
например, вот что я ввел:
sdf
42342
xxcv
.code()
преобразует его в sdf<br>42342<br>xxcv
или еще:
[{"_type":"ServerOperation","operationType":"ANNOUNCE"}]
becames
<span class="message_content">[{"_type":"ServerOperation","operationType":"ANNOUNCE"}]</span>
как получить чистый / простой текст?
5 ответов
можно применить один из двух лучших ответов на вопрос JavaScript: как удалить HTML-теги из строки?, после .code()
чтобы удалить теги.
ответ ReactiveRaven (чтобы сохранить его в одной строке) отлично работает для меня:
cleanText = $("#summernote").code().replace(/<\/?[^>]+(>|$)/g, "");
например,[{"_type":"ServerOperation","operationType":"ANNOUNCE"}]
:
-
$("#summernote").code()
возвращает<p>[{"_type":"ServerOperation","operationType":"ANNOUNCE"}]<br></p>
-
$("#summernote").code().replace(/<\/?[^>]+(>|$)/g, "")
возвращает[{"_type":"ServerOperation","operationType":"ANNOUNCE"}]
без каких-либо тегов.
и если вы хотите сохранить возврат каретки, вы можете заменить </p>
и <br>
на \n
перед применением решения, указанного в связанном вопросе:
$("#summernote").code()
.replace(/<\/p>/gi, "\n")
.replace(/<br\/?>/gi, "\n")
.replace(/<\/?[^>]+(>|$)/g, "");
просто попробуйте это:
var plainText = $($("#summernote").code()).text()
редактировать: В более новых версиях вам нужно использовать это вместо:
var plainText = $($("#summernote").summernote("code")).text()
вы можете использовать этот
var code = $("#editor").code();
var text = code.replace(/<p>/gi, " ");
var plainText= $("<div />").html(text).text();
новые версии
var contents = $('#summernote').summernote('code');
var plainText = $("<p>" + contents+ "</p>").text();
добавление фиктивного тега
устраняет отсутствие форматирования.
Мне нужно было проверить, имеет ли textarea какой-либо контент. Это сделало трюк:
$($("#summernote").code().replace(/ |<br>/g, ' ')).text().trim() == ''