Разделение строки JS

постараюсь правильно изложить свой вопрос, хотя это будет сложно. У меня есть ексель таблица, в которой кучу текста, я её вставляю в инпут на сайте. И этот текст сливается в одну строку. То есть все ячейки сливаются в сплошную строку. Дальше мне нужно разделить отдельные предложения по масиву, но я знаю что в каждой ячейке текст заканчивается на цифры от 001 до 999. Я пытался написать скрипт который будет искать "876 " и после этого записывать всё что было до этого в ячейку массива, но ввиду неопытности у меня ничего толком не получилось. Подскажите как это можно реализовать. Не прошу писать код за меня. Возможно есть какие то скрытые функции для методов или скрытое их использование о котором я не знаю.(До этого я пытался писать через .indexOf но результата я не получил)


Ответы (1 шт):

Автор решения: Pavel Nazarian

Вариант 1 -> Если у Вас ячейки с текстом в exel расположены вертикально, то можно использовать textarea вместо input. При копировании в textarea ячеек из exel весь текст можно разбивать по символу перевода строки - '\n'. Получаем массив строк. Далее чтобы получить необходимую строку в массиве просто обращаемся к ней по индексу, попутно за ненадобностью отсекая 3 цифровых символа в конце строки через метод slice

document.querySelector('textarea').addEventListener('input',function(){
  let arr = this.value.split(/\n/);  
  let str = arr[2].slice(0,-3)
  console.log(arr);
  console.log(str);
})
<textarea name="" id="" cols="30" rows="10"></textarea>

Вариант 2 -> Если мы всё таки используем input и каждая строка в ячейке заканчивается 3-мя цифровыми символами, то можно также попробовать разбить строку на массив через регулярное выражение.

   document.querySelector('input').addEventListener('input',function(){
  let arr = this.value.split(/[0-9]{3}/);
  console.log(arr);
  console.log(arr[2]);
})
<input type="text">

→ Ссылка