如何从 summernote 编辑器中获取纯文本?

How to get the plain text from summernote editor?

比如我输入的是这样的:

sdf
42342
xxcv

.code() 将其转换为 sdf<br>42342<br>xxcv

或另一件事:

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

变成

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

如何获取纯/纯文本?

您可以在 .code() 之后应用问题 JavaScript: How to strip HTML tags from string? 的前两个答案之一来去除标签。

ReactiveRaven 的回答(保持一行)对我来说很好:

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

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

  • $("#summernote").code() returns

    <p>[{"_type":"ServerOperation","operationType":"ANNOUNCE"}]<br></p>

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

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

    没有任何标签。


如果您想保留回车 return,您可以在应用链接问题中指定的解决方案之前将 </p><br> 替换为 \n

$("#summernote").code()
                .replace(/<\/p>/gi, "\n")
                .replace(/<br\/?>/gi, "\n")
                .replace(/<\/?[^>]+(>|$)/g, "");

你可以用这个

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

试试这个:

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

编辑: 在较新的版本中,您需要改用它:

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

较新的版本

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

添加虚拟标签

解决了缺少格式的问题。

我需要检查文本区域是否有任何内容。这已经成功了:

当前 summernote 版本 (8):

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

在我的旧版本中:

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

试试这个:)

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