Как получить простой текст из редактора summernote?

например, это то, что я ввел:

sdf
42342
xxcv

.code() преобразует его в sdf<br>42342<br>xxcv

или другое:

[{"_type":"ServerOperation","operationType":"ANNOUNCE"}]

becames

<span class="message_content">[{"_type":"ServerOperation","operationType":"ANNOUNCE"}]</span>

как получить чистый/обычный текст?

Ответ 1

Вы можете применить один из двух лучших ответов для вопроса JavaScript: как стричь теги HTML из строки? после .code(), чтобы удалить теги.

Ответ ReactiveRaven (чтобы сохранить его в одной строке) отлично подходит для меня:

cleanText = $("#summernote").code().replace(/<\/?[^>]+(>|$)/g, "");

Например, With [{"_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, "");

Ответ 2

Просто попробуйте следующее:

var plainText = $($("#summernote").code()).text()

ИЗМЕНИТЬ: В новых версиях вам нужно использовать это вместо:

var plainText = $($("#summernote").summernote("code")).text()

Ответ 3

вы можете использовать этот

   var code = $("#editor").code();
var text = code.replace(/<p>/gi, " ");
var plainText= $("<div />").html(text).text();

Ответ 4

более новые версии

var contents = $('#summernote').summernote('code');
var plainText = $("<p>" + contents+ "</p>").text();

Добавление фиктивного тега

устраняет отсутствие форматирования.

Ответ 5

Мне нужно было проверить, есть ли у текстовой области какой-либо контент. Это сделали свое дело:

Текущая версия Summernote (8):

$($("#summernote").summernote('code').replace(/&nbsp;|<br>/g, ' ')).text().trim() == ''

В моей старой версии:

$($("#summernote").code().replace(/&nbsp;|<br>/g, ' ')).text().trim() == ''

Ответ 6

Попробуй это :)

$('#summernote').summernote ('code', '<b> hello world </ b>');