@merindema
Одесса, 20 лет

Как разбить textarea на массив?

У меня есть textarea , я знаю что есть метод split(), но как разбить самую textarea на массив?
  • Вопрос задан
  • 207 просмотров
Пригласить эксперта
Ответы на вопрос 1
mizutsune
@mizutsune
Frontend Developer
1. Получаем содержимое textarea.
2. Используя метод split разбиваем полученное значение на отдельные слова или предложения по разделителю (перенос строки/точка с запятой/запятая/точка/пробел/etc).
4. Profit.

Окончательный результат зависит от того => массив каких значений вам нужно получить и в связи с этим, нужно составлять определенные функции, которые будут решать поставленные задачи, при этом нужно учитывать достаточно множество моментов, при которых что-то может пойти не так.

Несколько примеров

Пример - №1:

Задача: Получить простой массив слов, без модификации регистра заглавных букв и без удаления специальных символов, ну и всего остального.

let value = '   Illusion is the first of all pleasures.   ';

value.split(" ").filter(n => n !== "");


1. На первом этапе разбиваем строку на массив слов, используя в качестве разделителя пробел.
2. На втором этапе удаляются пустые значения из массива.

Результат:

['Illusion', 'is', 'the', 'first', 'of', 'all', 'pleasures.']


Пример - №2:

Задача: Получить массив слов без специальных символов и прочего.

let value = `       Lorem ipsum dolor sit amet, consectetur adipiscing elit, 
sed do eiusmod, tempor et dolore magna aliqua.
Amet facilisis magna!!! 
Ornare quam viverra volutpat odio facilisis mauris.    `;

value.split(" ").map(n => n.replace(/[\r\n.,!]/g, '')).filter(n => n !== "");


1. На первом этапе разбиваем строку на массив слов, используя в качестве разделителя пробел.
2. На втором этапе удаляем из каждого "слова" точки, запятые и восклицательный знак.

Результат:

["Lorem", "ipsum", "dolor", "sit", "amet", "consectetur", "adipiscing",
"elit", "sed", "do", "eiusmod", "tempor", "et", "dolore",
"magna", "aliquaAmet", "facilisis", "magna", "Ornare", "quam",
"viverra", "volutpat", "odio", "facilisis", "mauris"]


Пример - №3:

Задача: Получить массив предложений из текста.

let value = " Lorem ipsum. Dolor sit amet. Consectetur adipiscing elit.      ";

value.split(".").map(n => n.trim()).filter(n => n!== "").map(n => `${n}.`):


1. На первом этапе разбиваем строку на массив слов, используя в качестве разделителя символ точки, так как точка символизирует окончание предложения в тексте. По крайней мере, в большинстве случаев.
2. На втором этапе обрезаем пробелы вначале и в конце каждого элемента массива.
3. На третьем этапе избавляемся от пустых значений.
4. На четвёртом этапе расставляем точки на концах строк, чтобы превратить их в предложения.

Результат:

['Lorem ipsum.', 'Dolor sit amet.', 'Consectetur adipiscing elit.']


Пример - №4:

Задача: Разделить строку на части и записать их в массив, используя несколько разных разделителей.

let value = "Lorem ipsum, tempor magna aliqua. Dolor sit amet? Consectetur! Adipiscing elit.";

value.split(/[,.?!]/).map(n => n.trim()).filter(n => n!== "");


1. На первом этапе разбиваем строку на массив слов, используя в качестве разделителя группу символов.
2. На втором этапе обрезаем пробелы вначале и в конце каждого элемента массива.
3. На третьем этапе избавляемся от пустых значений.

Результат:

['Lorem ipsum', 'tempor et dolore magna aliqua', 'Dolor sit amet', 'Consectetur', 'Adipiscing elit']




Вариантов разделения строки на массив может быть огромное множество.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы