Javascript вставить текст в текстовую область удалить (CR) из CRLF

Мне нужно сохранить разрывы строк ввода текста, вставленного на мою страницу интерфейса javascript, после вставки во ввод Textarea

вот что произойдет, если я отлаживаю значение, содержащееся в методе onSumbit() текстовой области

Мне нужно иметь CRLF, но изображение ясно показывает, что CarriageReturn (CR) был удален из вставленного текста, и все еще присутствует только LineFeed (LF).

Я попытался добавить свойство css white-space: pre-wrap в текстовое поле, но это не сработало.

Как я могу сохранить CRLF текста?

Спасибо

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
66
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Где вы пытаетесь закодировать текст в base64? Если вы делаете это во внешнем интерфейсе, используя Javascript для получения значения, вы должны знать, что значение содержит только LF. Если вы делаете это в бэкенде после отправки тела по POST, то да, значение содержит CRLF и что-то не так.

Но я предполагаю, что из вашего описания проблемы вы находитесь в первом случае -frontend-, поэтому виновата не кодировка.

Итак, когда вы получаете значение из текстовой области, вы можете сделать что-то вроде

value.replace(/\r\n/g, "\n").replace(/\n/g, "\r\n")

чтобы всегда получать CRLF.

да, я во фронтенде, не могли бы вы объяснить мне, почему значение содержит только LF? Прежде чем поместить его в текстовую область, он содержит CRLF, так почему и когда javascript удаляет его?

user2298581 07.02.2023 12:18

Так говорят стандарты. Если вы размещаете CRLF, после редактирования они преобразуются в LF. Вы можете проверить с помощью console.info после изменения значения. Вы можете ввести что-то вроде console.info({v: e.target.value}), чтобы четко видеть управляющие символы. Вы также можете попробовать добавить значение по умолчанию, а затем преобразовать в base64 без редактирования. У вас должны быть ваши драгоценные CR.

Dimitrios Tsalkakis 07.02.2023 12:33

Есть ли способ изменить этот стандарт?

user2298581 07.02.2023 13:08

Кажется, нет никакого способа это сделать. Мое предложение состоит в том, что, когда вы читаете текст, 1) конвертируйте все CRLF в LF, а затем 2) конвертируйте все LF в CRLF. Таким образом, вы всегда будете получать строки CRLF в любом случае (контент редактировался или нет, начальное значение содержало CRLF или LF). Что-то вроде value.replace(/\r\n/g, "\n").replace(/\n/g, "\r\n") должно быть достаточно

Dimitrios Tsalkakis 07.02.2023 14:55

Другие вопросы по теме