0 2K

Textarea new line to html newline

Категории: Программирование

Существует распространенная проблема после ввода текста из textarea отображая его потом в html, Те переносы строк которые были в textarea не работают в html странице, мы предлагаем вам 3 способа как решить этот вопрос:

  • Первый способ, через C# можно написать функцию для конвертации переносов в html тэг <br>

public static string GetHtmlString(string value)
        {
            if (string.IsNullOrWhiteSpace(value))
            {
                return "";
            }
            var result = value.Replace("\n", "<br/>");
            return result;
        }
var str = GetHtmlString(myTextAreaValue)


И далее полученую строку можно отобразить в Razor через 

@Html.Raw(str)
  •  Второй способ: через javascript, используя функцию replace и регулярные выражения можно заменить переносты строк на html тэг <br />

var htmlString = value.replace(/(?:\r\n|\r|\n)/g, '<br />');

 где value значение из <textarea>

  • Третий способ:через свойство css 

white-space: pre-line;

​пример:

<p style="white-space: pre-line;">from textarea text</p>

Какой из вариантов выбрать, решать вам, но стоить отметить что 3 вариант исключает то что юзер встроит какой то html код в ваш textarea, потому что в первых 2х вариантах юзер может вставить html, img и тд, и вам придется предусматривать валидацию которая будет отсекать это.

Комментарии:

Пожалуйста авторизируйтесь, чтобы получить возможность оставлять комментарии