Разделение строки JS
постараюсь правильно изложить свой вопрос, хотя это будет сложно. У меня есть ексель таблица, в которой кучу текста, я её вставляю в инпут на сайте. И этот текст сливается в одну строку. То есть все ячейки сливаются в сплошную строку. Дальше мне нужно разделить отдельные предложения по масиву, но я знаю что в каждой ячейке текст заканчивается на цифры от 001 до 999. Я пытался написать скрипт который будет искать "876 " и после этого записывать всё что было до этого в ячейку массива, но ввиду неопытности у меня ничего толком не получилось. Подскажите как это можно реализовать. Не прошу писать код за меня. Возможно есть какие то скрытые функции для методов или скрытое их использование о котором я не знаю.(До этого я пытался писать через .indexOf но результата я не получил)
Ответы (1 шт):
Вариант 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">