Перейти к содержимому

Как сохранить перенос строки в textarea

  • автор:

Как сохранить переносы строк из textarea и как разбить массив на строки?

На сайте есть HTML форма, данные из которой передаются в docx файл.

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

Часть HTML формы:

input type="checkbox" id="intramural" value="Очная" name="study_forms[]"> label for="intramural">Очная/label>
textarea id="personal_results" name="personal_results" placeholder="Личностные результаты">/textarea>

Часть PHP кода:

1 2 3
$study_forms = $_POST['study_forms']; $document->setValue('study_forms', implode(", ", $study_forms));
1 2 3
$personal_results = $_POST['personal_results']; $document->setValue('personal_results', $personal_results);

Пробовал прописать PHP_EOL и /n, но безрезультатно, вероятно делал что-то неправильно
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Как Excel документ, в котором 10000 строк, разбить по 10 строк и сохранить каждые 10 строк в отдельный файл
Здравствуйте. Подскажите как Excel документ в котором 10000 строк разбить по 10 строк и сохранить.

Заменить переносы строк на пробелы в выделенном тексте в textarea
Здравствуйте, подскажите, как заменить переносы строк на пробелы и удалить лишние пробелы в.

Как разбить строку на массив из строк по 2 символа?
У меня есть строка из 14 символов. Подскажите понятно, пожалуйста, как разбить её на массив по 2.

Как сохранить пробелы, переносы и т.д. при применении xslt к xml файлу
Здравствуйте,еще вопрос, не смог нагуглить его. Как ,например,когда мы применяем xslt к xml файлу в.

Заблокирован

ЦитатаСообщение от raxvell Посмотреть сообщение

чтобы текст из textarea сохранял переносы.
Если имеется ввиду тэг
— тогда вот так:

$personal_results = $_POST['personal_results']; $personal_results = nl2br($personal_results);

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Как убрать переносы в конце строк?
Здравствуйте! Попался текст на 80 страниц в конце стоят переносы слов на другие строки. Как.

Как убрать переносы строк и знаки переноса
Вот пример текста: "Исследование выполняют во время стандартной катетеризации полостей .

Считать данные из файла и разбить строки на массив строк
Доброго времени суток. Возникла такая трабла — нужно считать следующий массив строк: Toyota Supra.

Как массив строк сохранить в файл и загрузить из него?
Есть рабочий код переводчика с русского на английский.ами слова заполняютья и сохраняються в.

Как добавить переносы строк к каждому элементу массива
Есть числовой массив например err_log, как мне через document.write вывести все эти элементы в.

Как сохранить перенос строки из Textarea?

Далее при загрузке DOM-дерева автоматом работает код JQuery:

 function getData(data) < var url = "/api/Blog" $.getJSON(url, function (data) < $("#idfirst").before('' + ' ' + '
'); $("#posthead").append('

' + data[6] + '

'); $("#postbody").append('

' + data[7] + '

'); >); > $(document).ready(function () < getData(); >)

Тут всё просто – перед блоком idfirst вставляем подготовленный блок со вложенными блоками для поста, со своими стилями. Тут всё работает. Но проблема в том, что он не сохраняет перенос на след строку. Так я его вбил:введите сюда описание изображения Так я его вижу: введите сюда описание изображения Как это исправить?

Атрибут wrap

Атрибут wrap говорит браузеру, как осуществлять перенос текста в поле и в каком виде отправлять данные на сервер. Если этот атрибут отсутствует, текст в поле набирается одной строкой, когда число введенных символов превышает ширину области, появляется горизонтальная полоса прокрутки. Нажатие кнопки Enter переносит текст на новую строку, и курсор устанавливается у левого края поля.

Синтаксис

Значения

soft Длинный текст, который самостоятельно не помещается в поле по ширине, будет автоматически перенесен на новую строку, однако передаваться на сервер будет как одна строка. Нажатие клавиши Enter устанавливает перенос текста, который сохраняется при отправке формы. hard Слова в поле переносятся механически, чтобы они поместились в размер области, и при отправке на сервер места автоматического переноса сохраняются. При этом значении обязательно должен присутствовать атрибут cols . off Нестандартное значение. Переносы строк отключены. При введении длинного текста без переносов, он будет печататься в одну строку, при этом будет отображаться полоса прокрутки.

Значение по умолчанию

HTML5 IE Cr Op Sa Fx

    Тег textarea, атрибут wrap  

Примечание

Некоторые старые браузеры также поддерживают нестандартные значения virtual вместо soft и physical вместо hard .

Не выкладывайте свой код напрямую в комментариях, он отображается некорректно. Воспользуйтесь сервисом cssdeck.com или jsfiddle.net, сохраните код и в комментариях дайте на него ссылку. Так и результат сразу увидят.

Типы тегов

HTML5

Блочные элементы

Строчные элементы

Универсальные элементы

Нестандартные теги

Осуждаемые теги

Видео

Документ

Звук

Изображения

Объекты

Скрипты

Списки

Ссылки

Таблицы

Текст

Форматирование

Формы

Фреймы

Полезные методы для строк

Мы рассмотрели базовые понятия, касающиеся строк. Давайте пойдём дальше и рассмотрим, какие полезные операции мы можем выполнять со строками, используя встроенные функции, такие как поиск длины текстовой строки, объединение и разделение строк, замена одного символа из строки другим и многое другое.

Необходимые знания: Базовая компьютерная грамотность, базовое понимание HTML и CSS, понимание того, что такое JavaScript.
Задача: Понять, что строки являются объектами, и изучить, как использовать некоторые из основных методов, доступных для этих объектов для управления строками.

Строки как объекты

Почти всё в JavaScript является объектами. Когда вы создаёте строку, например:

let string = 'This is my string';

ваша переменная становится строковым объектом, и, как результат, ей доступно множество свойств и методов. Можете убедиться в этом, перейдя на страницу String и просмотрев на ней список свойств и методов!

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

Введем несколько примеров в консоль разработчика.

Поиск длины строки

Это легко — вы просто используете свойство length . Попробуйте ввести следующие строки:

let browserType = 'mozilla'; browserType.length;

Результатом должно быть число 7, потому что слово «mozilla» состоит из 7 символов. Это свойство можно применить, например, если вы захотите найти длины серии имён, чтобы их можно было отображать по порядку длины или сообщить пользователю, что имя пользователя, которое он ввёл в поле формы, слишком длинное, если оно превышает определённую длину.

Получение определённого строкового символа

Вы можете вернуть любой символ внутри строки, используя обозначение в квадратных скобках. Это означает, что вы добавляете квадратные скобки ([ ]) в конце вашего имени переменной. В квадратных скобках вы указываете номер символа, который хотите вернуть. Например, чтобы получить первую букву, нужно написать:

browserType[0];

Компьютеры считают от 0, а не 1! Чтобы получить последний символ любой строки, мы могли бы использовать следующую строку, объединив эту технику с свойством length :

browserType[browserType.length-1];

Длина слова «mozilla» равна 7, но, поскольку счёт начинается с 0, позиция последнего символа равна 6, поэтому нам нужна length-1 . Такой способ можно использовать, чтобы найти первую букву ряда строк и упорядочить их по алфавиту.

Поиск подстроки внутри строки и её извлечение

  1. Иногда вам может понадобиться выяснить, присутствует ли меньшая строка внутри большей (обычно мы говорим, что внутри строки есть подстрока). Это можно сделать с помощью метода indexOf () , который принимает одну parameter (en-US) — подстроку, которую вы хотите найти. Введите:
browserType.indexOf('zilla');
browserType.indexOf('vanilla');

Это должно дать вам результат -1. Такое значение возвращается, когда подстрока, в данном случае «vanilla», не найдена в основной строке. Вы можете использовать это, чтобы найти все экземпляры строк, которые не содержат подстроку «mozilla» (для обратного эффекта, используйте оператор отрицания):

if(browserType.indexOf('mozilla') === -1) < // сделать что-то, если 'mozilla' // не является частью этой строки >if(browserType.indexOf('mozilla') !== -1) < // сделать что-то, если 'mozilla' // является частью этой строки >
browserType.slice(0,3);
browserType.slice(2);

Примечание: второй параметр slice() не обязателен: если вы его не включите в код, обрезание закончится на конце оригинальной строки. Есть и другие варианты; изучите страницу slice () , чтобы узнать, что ещё вы можете узнать.

Изменение регистра

Строковые методы toLowerCase () и toUpperCase () преобразовывают все символы в строке в нижний или верхний регистр соответственно. Этот способ можно применить, если вы хотите нормализовать все введённые пользователем данные перед их сохранением в базе данных.

Попробуем ввести следующие строки, чтобы узнать, что происходит:

var radData = 'My NaMe Is MuD'; radData.toLowerCase(); radData.toUpperCase();

Обновление частей строки

Вы можете заменить одну подстроку внутри строки на другую подстроку, используя метод replace () . Этот метод работает очень просто на базовом уровне, но у него есть некоторые продвинутые свойства, но мы пока не будем вдаваться в детали.

Он принимает два параметра — строку, которую вы хотите заменить, и строку, которую вы хотите вставить вместо заменяемой. Попробуйте этот пример:

browserType.replace('moz','van');

Обратите внимание, что для фактического получения обновлённого значения, отражённого в переменной browserType в реальной программе, вам нужно будет установить значение переменной в результате операции; он не просто обновляет значение подстроки автоматически. Таким образом, вы должны были бы написать это: browserType = browserType.replace(‘moz’,’van’);

Активные примеры обучения

В этом разделе мы дадим вам попробовать набить руку и вместе напишем код строковой манипуляции. В каждом упражнении ниже у нас есть массив строк и цикл, который обрабатывает каждое значение в массиве и отображает его в маркированном списке. Вам не нужно понимать массивы или циклы прямо сейчас — это будет объяснено в будущих статьях. Все, что вам нужно сделать в каждом случае, — написать код, который выводит строки в том формате, в котором мы предлагаем.

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

Фильтрация приветственных сообщений

В первом упражнении мы начнём с простого: у нас есть множество сообщений поздравительных открыток, но мы хотим отсортировать их, чтобы перечислять только рождественские сообщения. Мы хотим, чтобы вы заполнили условный тест внутри структуры if( . ), чтобы проверить каждую строку и отобразить её в списке, только если это рождественское сообщение.

  1. Сначала подумайте о том, как вы можете проверить, является ли сообщение в каждом случае рождественским сообщением. Какая строка присутствует во всех этих сообщениях и какой метод вы можете использовать для проверки?
  2. Затем вам нужно будет написать условный тест операнд1 оператор операнд2. Соответствует ли результат слева результату справа? Или в этом случае вызов метода слева возвращает результат справа?
  3. Подсказка. В этом случае, вероятно, полезнее проверить, не является ли часть строки не равной (!==) определённому результату.
h2>Результатh2> div class="output" style="min-height: 125px;"> ul>ul> div> h2>Редактируемый кодh2> p class="a11y-label"> Нажмите Esc, чтобы выйти из поля ввода (Tab вставляет символ табуляции). p> textarea id="code" class="playable-code" style="height: 290px; width: 95%"> var list = document.querySelector('.output ul'); list.innerHTML = ''; var greetings = ['С днём рождения!', 'С Рождеством, любовь моя', 'Счастливого Рождества всей твоей семье', 'Ты — та, кто нужен мне на Рождество', 'Поправляйся скорее']; for (var i = 0; i < greetings.length; i++) < var input = greetings[i]; // Ваше решение должно быть в фигурных скобках // ниже: вы должны что-то добавить if (greetings[i]) < var result = input; var listItem = document.createElement('li'); listItem.textContent = result; list.appendChild(listItem); >> textarea> div class="playable-buttons"> input id="reset" type="button" value="Сбросить" /> input id="solution" type="button" value="Показать решение" /> div> 
html  font-family: sans-serif; > h2  font-size: 16px; > .a11y-label  margin: 0; text-align: right; font-size: 0.7rem; width: 98%; > body  margin: 10px; background: #f5f9fa; > 
var textarea = document.getElementById("code"); var reset = document.getElementById("reset"); var solution = document.getElementById("solution"); var code = textarea.value; var userEntry = textarea.value; function updateCode()  eval(textarea.value); > reset.addEventListener("click", function ()  textarea.value = code; userEntry = textarea.value; solutionEntry = jsSolution; solution.value = "Показать решение"; updateCode(); >); solution.addEventListener("click", function ()  if (solution.value === "Показать решение")  textarea.value = solutionEntry; solution.value = "Спрятать решение"; > else  textarea.value = userEntry; solution.value = "Показать решение"; > updateCode(); >); var jsSolution = "var list = document.querySelector('.output ul');\nlist.innerHTML = '';\nvar greetings = ['С днём рождения!',\n 'С Рождеством, любовь моя',\n 'Счастливого Рождества всей твоей семье',\n 'Ты — та, кто нужен мне на Рождество',\n 'Поправляйся скорее'];\n\nfor(var i = 0; i < greetings.length; i++) \n>"; var solutionEntry = jsSolution; textarea.addEventListener("input", updateCode); window.addEventListener("load", updateCode); // stop tab key tabbing out of textarea and // make it write a tab at the caret position instead textarea.onkeydown = function (e)  if (e.keyCode === 9)  e.preventDefault(); insertAtCaret("\t"); > if (e.keyCode === 27)  textarea.blur(); > >; function insertAtCaret(text)  var scrollPos = textarea.scrollTop; var caretPos = textarea.selectionStart; var front = textarea.value.substring(0, caretPos); var back = textarea.value.substring( textarea.selectionEnd, textarea.value.length, ); textarea.value = front + text + back; caretPos = caretPos + text.length; textarea.selectionStart = caretPos; textarea.selectionEnd = caretPos; textarea.focus(); textarea.scrollTop = scrollPos; > // Update the saved userCode every time the user updates the text area code textarea.onkeyup = function ()  // We only want to save the state when the user code is being shown, // not the solution, so that solution is not saved over the user code if (solution.value === "Показать решение")  userEntry = textarea.value; > else  solutionEntry = textarea.value; > updateCode(); >; 

Исправление регистра (размера букв в тексте—прим. пер.)

В этом упражнении у нас есть названия городов в Великобритании, но написанных разным регистром. Мы хотим, чтобы вы изменили их так, чтобы они были в нижнем регистре, за исключением первой буквы. Хороший способ сделать это:

  1. Преобразуйте всю строку, содержащуюся в переменной input, в нижний регистр и сохраните её в новой переменной.
  2. Возьмите первую букву строки в этой новой переменной и сохраните её в другой переменной.
  3. Используя эту последнюю переменную в качестве подстроки, замените первую букву строчной строки первой буквой строчной строки, изменённой на верхний регистр. Сохраните результат этой процедуры замены в другой новой переменной.
  4. Измените значение переменной result на равную конечному результату (не input ).

Примечание: Подсказка — параметры строковых методов не обязательно должны быть строковыми литералами; они также могут быть переменными или даже переменными с вызываемым ими методом.

h2>Результатh2> div class="output" style="min-height: 125px;"> ul>ul> div> h2>Редактируемый кодh2> p class="a11y-label"> Нажмите Esc, чтобы выйти из поля ввода (Tab вставляет символ табуляции). p> textarea id="code" class="playable-code" style="height: 250px; width: 95%"> var list = document.querySelector('.output ul'); list.innerHTML = ''; var cities = ['лонДон', 'МанЧЕСТёр', 'БиРминГЕМ', 'лиВЕРпуЛЬ']; for(var i = 0; i < cities.length; i++) < var input = cities[i]; // пишите код ниже var result = input; var listItem = document.createElement('li'); listItem.textContent = result; list.appendChild(listItem); >textarea> div class="playable-buttons"> input id="reset" type="button" value="Сбросить" /> input id="solution" type="button" value="Показать решение" /> div> 
html  font-family: sans-serif; > h2  font-size: 16px; > .a11y-label  margin: 0; text-align: right; font-size: 0.7rem; width: 98%; > body  margin: 10px; background: #f5f9fa; > 
var textarea = document.getElementById("code"); var reset = document.getElementById("reset"); var solution = document.getElementById("solution"); var code = textarea.value; var userEntry = textarea.value; function updateCode()  eval(textarea.value); > reset.addEventListener("click", function ()  textarea.value = code; userEntry = textarea.value; solutionEntry = jsSolution; solution.value = "Показать решение"; updateCode(); >); solution.addEventListener("click", function ()  if (solution.value === "Показать решение")  textarea.value = solutionEntry; solution.value = "Спрятать решение"; > else  textarea.value = userEntry; solution.value = "Показать решение"; > updateCode(); >); var jsSolution = "var list = document.querySelector('.output ul');\nlist.innerHTML = '';\nvar cities = ['лонДон', 'МанЧЕСТёр', 'БиРминГЕМ', 'лиВЕРпуЛЬ'];\n\nfor(var i = 0; i < cities.length; i++) "; var solutionEntry = jsSolution; textarea.addEventListener("input", updateCode); window.addEventListener("load", updateCode); // stop tab key tabbing out of textarea and // make it write a tab at the caret position instead textarea.onkeydown = function (e)  if (e.keyCode === 9)  e.preventDefault(); insertAtCaret("\t"); > if (e.keyCode === 27)  textarea.blur(); > >; function insertAtCaret(text)  var scrollPos = textarea.scrollTop; var caretPos = textarea.selectionStart; var front = textarea.value.substring(0, caretPos); var back = textarea.value.substring( textarea.selectionEnd, textarea.value.length, ); textarea.value = front + text + back; caretPos = caretPos + text.length; textarea.selectionStart = caretPos; textarea.selectionEnd = caretPos; textarea.focus(); textarea.scrollTop = scrollPos; > // Update the saved userCode every time the user updates the text area code textarea.onkeyup = function ()  // We only want to save the state when the user code is being shown, // not the solution, so that solution is not saved over the user code if (solution.value === "Показать решение")  userEntry = textarea.value; > else  solutionEntry = textarea.value; > updateCode(); >; 

Создание новых строк из старых частей

В этом последнем упражнении массив содержит кучу строк, содержащих информацию о железнодорожных станциях на севере Англии. Строки представляют собой элементы данных, которые содержат трёхбуквенный код станции, за которым следуют некоторые машиночитаемые данные, за которыми следует точка с запятой, а затем название станции, пригодное для чтения человеком. Например:

MAN675847583748sjt567654;Manchester Piccadilly

Мы хотим извлечь код станции и имя и поместить их в строку со следующей структурой:

MAN: Manchester Piccadilly

Мы бы рекомендовали реализовать это следующим образом:

  1. Извлеките трёхбуквенный код станции и сохраните его в новой переменной.
  2. Найдите номер символьного номера точки с запятой.
  3. Извлеките название для чтения человеком, используя номер индекса точки с запятой в качестве контрольной точки и сохраните его в новой переменной.
  4. Объедините две новые переменные и строковый литерал, чтобы сделать финальную строку.
  5. Измените значение переменной result равной конечной строке (не input ).
h2>Результатh2> div class="output" style="min-height: 125px;"> ul>ul> div> h2>Редактируемый кодh2> p class="a11y-label"> Нажмите Esc, чтобы выйти из поля ввода (Tab вставляет символ табуляции). p> textarea id="code" class="playable-code" style="height: 285px; width: 95%"> var list = document.querySelector('.output ul'); list.innerHTML = ''; var stations = ['MAN675847583748sjt567654;Manchester Piccadilly', 'GNF576746573fhdg4737dh4;Greenfield', 'LIV5hg65hd737456236dch46dg4;Liverpool Lime Street', 'SYB4f65hf75f736463;Stalybridge', 'HUD5767ghtyfyr4536dh45dg45dg3;Huddersfield']; for (var i = 0; i < stations.length; i++) < var input = stations[i]; // пишите ваш код ниже var result = input; var listItem = document.createElement('li'); listItem.textContent = result; list.appendChild(listItem); >textarea> div class="playable-buttons"> input id="reset" type="button" value="Сбросить" /> input id="solution" type="button" value="Показать решение" /> div> 
html  font-family: sans-serif; > h2  font-size: 16px; > .a11y-label  margin: 0; text-align: right; font-size: 0.7rem; width: 98%; > body  margin: 10px; background: #f5f9fa; > 
var textarea = document.getElementById("code"); var reset = document.getElementById("reset"); var solution = document.getElementById("solution"); var code = textarea.value; var userEntry = textarea.value; function updateCode()  eval(textarea.value); > reset.addEventListener("click", function ()  textarea.value = code; userEntry = textarea.value; solutionEntry = jsSolution; solution.value = "Показать решение"; updateCode(); >); solution.addEventListener("click", function ()  if (solution.value === "Показать решение")  textarea.value = solutionEntry; solution.value = "Спрятать решение"; > else  textarea.value = userEntry; solution.value = "Показать решение"; > updateCode(); >); var jsSolution = "var list = document.querySelector('.output ul');\nlist.innerHTML = '';\nvar stations = ['MAN675847583748sjt567654;Manchester Piccadilly',\n 'GNF576746573fhdg4737dh4;Greenfield',\n 'LIV5hg65hd737456236dch46dg4;Liverpool Lime Street',\n 'SYB4f65hf75f736463;Stalybridge',\n 'HUD5767ghtyfyr4536dh45dg45dg3;Huddersfield'];\n\nfor(var i = 0; i < stations.length; i++) "; var solutionEntry = jsSolution; textarea.addEventListener("input", updateCode); window.addEventListener("load", updateCode); // stop tab key tabbing out of textarea and // make it write a tab at the caret position instead textarea.onkeydown = function (e)  if (e.keyCode === 9)  e.preventDefault(); insertAtCaret("\t"); > if (e.keyCode === 27)  textarea.blur(); > >; function insertAtCaret(text)  var scrollPos = textarea.scrollTop; var caretPos = textarea.selectionStart; var front = textarea.value.substring(0, caretPos); var back = textarea.value.substring( textarea.selectionEnd, textarea.value.length, ); textarea.value = front + text + back; caretPos = caretPos + text.length; textarea.selectionStart = caretPos; textarea.selectionEnd = caretPos; textarea.focus(); textarea.scrollTop = scrollPos; > // Update the saved userCode every time the user updates the text area code textarea.onkeyup = function ()  // We only want to save the state when the user code is being shown, // not the solution, so that solution is not saved over the user code if (solution.value === "Показать решение")  userEntry = textarea.value; > else  solutionEntry = textarea.value; > updateCode(); >; 

Заключение

Нельзя не согласиться с тем, что способность обрабатывать слова и предложения в программировании очень важна — особенно в JavaScript, поскольку веб-сайты — все связаны с людьми. Эта статья дала вам основы, которые вам нужно знать о манипуляции строками на данный момент. Это пойдёт вам на пользу, когда вы займётесь более сложными темами в будущем. Далее мы рассмотрим последний важный тип данных, на который нам нужно сосредоточиться в краткосрочной перспективе — массивы.

В этом модуле

  • Что такое JavaScript?
  • Знакомство с JavaScript
  • Устранение ошибок в JavaScript
  • Переменные — место хранения необходимой информации
  • Базовая математика в JavaScript
  • Работа с текстом — строки в JavaScript
  • Полезные методы для строк
  • Массивы
  • Генератор глупых историй

Found a content problem with this page?

  • Edit the page on GitHub.
  • Report the content issue.
  • View the source on GitHub.

This page was last modified on 3 авг. 2023 г. by MDN contributors.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *