Как получить простой текст из редактора 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"}]
:
И если вы хотите сохранить возврат каретки, вы можете заменить </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(/ |<br>/g, ' ')).text().trim() == ''
В моей старой версии:
$($("#summernote").code().replace(/ |<br>/g, ' ')).text().trim() == ''
Ответ 6
Попробуй это :)
$('#summernote').summernote ('code', '<b> hello world </ b>');