Можно ли преобразовать html в обычный текст без изменения стиля? - PullRequest
0 голосов
/ 14 июля 2020

Есть ли способ передать значение редактора форматированного текста в контроллер в обычном тексте без изменения форматирования / стиля? Я использую cleditor в качестве текстового редактора. Это мой элемент textarea и то, как я его вызываю

$(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 (). Но когда выбран любой стиль, например полужирный или itali c, он передает значение HTML, подобное этому.

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

Я хочу передать его как обычный текст, но без изменения стилей. Я прошел через коды преобразования, но они дают мне простой текст. Так можно ли преобразовать его в обычную строку без изменения стилей ?? Пожалуйста, помогите мне

Ответы [ 2 ]

0 голосов
/ 14 июля 2020

Вы можете использовать функции encodeURI() и decodeURI() JavaScript или HttpUtility.UrlEncode() и Httputlity.UrlDecode() в Razor. Эти функции будут кодировать все специальные символы в формате, который сохраняется, например, для хранения в базе данных. Если вы захотите использовать данные, вы можете просто декодировать строку с помощью функций, упомянутых выше, и загрузить html в другое место (например, с Html.Raw в razor или установив свойство innerHTML элемента используя JavaScript.

0 голосов
/ 14 июля 2020

Если вы говорите об удалении тегов, это относительно просто, если вам не нужно беспокоиться о таких вещах, как теги. Если все, что вам нужно сделать, это отобразить текст без тегов, вы можете sh это сделать с помощью регулярного выражения:

<[^>] *>

Если вам нужно беспокоиться насчет тегов и тому подобного, тогда вам понадобится что-то более мощное, чем регулярные выражения, потому что вам нужно отслеживать состояние, что-то вроде контекстно-свободной грамматики (CFG). Хотя вы могли бы sh это сделать с помощью 'слева направо' или не жадного сопоставления.

Если вы можете использовать регулярные выражения, есть много веб-страниц с хорошей информацией:

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, я бы предложил использовать сторонний инструмент, к сожалению, я не знаю хорошего рекомендую.

...