или Отобразить строку в HTML и сохранить пробелы и разрывы строк




html перенос строки без br (5)

вы пробовали использовать <pre> .

http://jsfiddle.net/NweRa/

У меня есть приложение MVC3, на котором есть страница с подробными сведениями. Как часть этого, у меня есть описание (полученное из db), в котором есть пробелы и новые строки. Когда он отображается, новые строки и пробелы игнорируются html. Я хотел бы закодировать эти пробелы и новые строки, чтобы они не игнорировались.

Как ты это делаешь?

Я пробовал HTML.Encode, но в итоге он отображал кодировку (и даже не на пространствах и новых строках, а на некоторых других специальных символах)


Answer #1

Вы можете использовать white-space: pre-line для сохранения разрывов строк в форматировании. Нет необходимости вручную вставлять элементы html.

.popover {
    white-space: pre-line;    
}

или добавить в свой style="white-space: pre-line;" html style="white-space: pre-line;"


Answer #2

Просто создайте контент с помощью white-space: pre-wrap; ,

Рабочая fiddle


Answer #3

Вы хотите заменить все пробелы на & nbsp; (неразрывное пространство) и все новые строки «\ n» с < br> (разрыв строки в html). Это должно привести к тому, что вы ищете.

body = body.replace ('', & nbsp;). replace ('\ n', '< ш> ');

Что-то в этом роде.


Answer #4

Как вы упомянули в ответе @Developer, я, скорее всего, кодирую HTML-код на входе пользователя. Если вас беспокоит XSS, вам, вероятно, никогда не понадобится вход пользователя в его оригинальной форме, поэтому вы можете избежать его (и заменить пробелы и новые строки, пока вы на нем).

Обратите внимание, что экранирование при вводе означает, что вы должны использовать @ Html.Raw или создать MvcHtmlString для визуализации этого конкретного ввода.

Вы также можете попробовать

System.Security.SecurityElement.Escape(userInput)

но я думаю, что это тоже не ускользнет. Поэтому в этом случае я предлагаю просто сделать .NET.

System.Security.SecurityElement.Escape(userInput).Replace(" ", "&nbsp;").Replace("\n", "<br>")

при вводе пользователя. И если вы хотите углубиться в удобство использования, возможно, вы можете выполнить XML-анализ ввода пользователя (или играть с регулярными выражениями), чтобы разрешить только предопределенный набор тегов. Например, разрешите

<p>, <span>, <strong>

... но не допускать

<script> or <iframe>




line-breaks