Как получить значение строки textarea?

Я пытаюсь выяснить, есть ли способ для углового или просто чистого javascript получить значение строки текстового поля?

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

Это то, что я начал создавать, но понял, что это не сработает для моих нужд, так как длинное предложение или абзац может не иметь разрыва строки, а каждая строка имеет не совсем одинаковую длину в символах, потому что длинное слово может обернуться новым ряд

 Test(textarea) {
   console.info(textarea)
   let data = [];
   console.info(this.test)
   data = this.test.split('\n');
   data.forEach(element = > {
     var item = {
       text: element
     }
     console.info(item)
   });
 }

К сожалению, элемент <textarea> не имеет понятия «линии», поэтому этот вопрос всегда приводит к довольно сложному для реализации решению. Возможно, стоит прочитать этот вопрос: stackoverflow.com/questions/38102776/… (хотя я не уверен, что это обман).

David Thomas 10.12.2018 22:26

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

Kevin B 10.12.2018 23:09
Поведение ключевого слова "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
2
59
1

Ответы 1

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

const maxLength = 20;

const splitToLength = sentence => {
  if (sentence.length <= maxLength) {
      return [sentence];
  }
  const index = sentence.lastIndexOf(' ', maxLength);
  return [
    sentence.substr(0, index), 
    splitToLength(sentence.substr(index +1))
  ].flat();
}

const input = 'Lorem ipsum dolor amet kombucha health goth put a bird on it, kogi photo booth hella whatever butcher.\nSingle-origin coffee food truck thundercats small batch banh mi franzen blog snackwave deep v plaid narwhal vaporware. Cold-pressed snackwave bitters cardigan, palo santo chillwave wayfarers street art tote bag flexitarian selvage four loko. Next level affogato vice poutine brooklyn sustainable raw denim normcore post-ironic williamsburg.\nReadymade butcher meh, subway tile bushwick biodiesel helvetica cred ethical mixtape meditation plaid. Ugh banjo snackwave street art coloring book iceland lomo mlkshk DIY vape edison bulb. Copper mug salvia sustainable next level artisan coloring book ugh distillery schlitz listicle food truck etsy offal adaptogen iceland.'

const output = input
  .split('\n')
  .map(splitToLength)
  .flat()
  .map(text => ({text}));
 
 console.info(output);

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