是否可以在不更改样式的情况下将 html 转换为纯文本?

Is it possible to convert html to plain text without changing style?

有没有办法在不改变的情况下将富文本编辑器的值以普通文本形式传递给控制器​​formatting/style? 我正在使用 cleditor 作为文本编辑器。 这是我的文本区域元素以及我如何调用它

$(document).ready(function() {
  var options = {
    width: 600,
    height: 300,
    controls: "bold italic underline strikethrough subscript superscript | font size style | color highlight removeformat | bullets numbering | outdent indent | alignleft center alignright justify | undo redo | rule link image unlink | cut copy paste pastetext | print source"
  };
  var editor = $("#editor").cleditor(options)[0];
})
<link href="~/CLEditor1_4_5/jquery.cleditor.css" rel="stylesheet" />
<script src="~/bootstrap-3.3.6-dist/js/jquery.min.js"></script>
<script src="~/CLEditor1_4_5/jquery.cleditor.js"></script>


<textarea rows="0" id="editor" cols="0" style="margin-left:0%" placeholder="Write message here"></textarea>

我想将文本区域的值发送到控制器。我正在使用 val() 来做到这一点。 But when any styling is selected i.e bold or italic, it's passing HTML value like this.

 <span style="font-weight: bold; font-style: italic; text-decoration-line: underline;">hello</span>

我想将其作为纯文本传递,但不进行更改 styles.I已经完成转换代码,但他们给我的是纯文本。 那么是否可以在不改变样式的情况下将其转换为普通字符串? 请帮帮我

如果你说的是标签剥离,如果你不用担心标签之类的事情,那就相对简单了。如果您需要做的只是显示不带标签的文本,您可以使用正则表达式来完成:

<[^>]*>

如果您确实需要担心标签等问题,那么您将需要比正则表达式更强大的东西,因为您需要跟踪状态,更像是上下文无关语法 (CFG)。尽管您可以使用 'Left To Right' 或非贪婪匹配来完成它。

如果您可以使用正则表达式,那么有很多网页提供了很好的信息:

http://weblogs.asp.net/rosherove/archive/2003/05/13/6963.aspx http://www.google.com/search?hl=en&q=html+tag+stripping+&btnG=Search 如果您需要 CFG 的更复杂行为,我建议您使用第三方工具,不幸的是我不知道有什么好的推荐工具。

您可以在 Razor 中使用 encodeURI()decodeURI() JavaScript 函数,或 HttpUtility.UrlEncode()Httputlity.UrlDecode()。这些函数会将所有特殊字符编码为一种格式,例如保存在数据库中。一旦你想使用数据,你可以简单地使用上面提到的函数解码字符串,并将 html 加载到不同的地方(例如在剃须刀中使用 Html.Raw,或者通过设置 innerHTML 属性 元素使用 JavaScript.