@ch-aqwer

Как сделать split на конкретные слова, js?

Добрый день! Подскажите пожалуйста как сделать split на конкретные слова?
То есть у меня есть строка.
И есть слова или начало и конец символа с которого нужно делать сплит

Например:
const someStr = 'Какая-нибудь строка которую нужно разбить на массив';
    const obj= [{ symbol: 'строка', from: 14, to: 20 }, { symbol: 'разбить', from: 35, to: 50 }];


В результате должно быть
strArray =  ['Какая-нибудь ', 'строка', ' которую нужно ', 'разбить на', ' массив']

Как лучше Такке сделать?
Буду очень благодарен)
  • Вопрос задан
  • 142 просмотра
Решения вопроса 1
@dimoff66
Кратко о себе: Я есть
replace + Регулярка

const someStr = 'Какая-нибудь строка которую нужно разбить на массив';
const obj= ['строка', 'разбить'];

const regExpStr = obj.join('|');

const parts = someStr.replace(new RegExp(regExpStr, 'g'), function (substring) {
    return '###' + substring + '###'
}).split('###');


По индексам:

const someStr = 'Какая-нибудь строка которую нужно разбить на массив';
const obj= [{from: 14, to: 20}, {from: 35, to: 42}];

const res = obj.reduce((agg, range, ind, arr) => {
    const prevPos = ind ? arr[ind - 1].to : -1;
    agg.push(someStr.substring(prevPos, range.from - 1));
    agg.push(someStr.substring(range.from - 1, range.to));

    if(ind === arr.length - 1) {
        agg.push(someStr.substr(range.to));
    }

    return agg
}, []);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@eternalfire
someStr.split(' ')
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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