如何从 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(/ |<br>/g, ' ')).text().trim() == ''
在我的旧版本中:
$($("#summernote").code().replace(/ |<br>/g, ' ')).text().trim() == ''
试试这个:)
$('#summernote').summernote ('code', '<b> hello world </ b>');
比如我输入的是这样的:
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(/ |<br>/g, ' ')).text().trim() == ''
在我的旧版本中:
$($("#summernote").code().replace(/ |<br>/g, ' ')).text().trim() == ''
试试这个:)
$('#summernote').summernote ('code', '<b> hello world </ b>');