Убрать все содержимое строки, кроме определенных слов

Надо убрать из строки все символы, кроме определенных слов, например: "Швеция и Дания" и "Великобритания и Франция"


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

Автор решения: fedor-sg

Хм... если правильно понял постановку задачи, то так то так:

const words_string = 'Бла-бла-бла-бла-бла Россия Бла-бла-бла Швеция и Дания Бла-бла';
const words_all_list = ['Швеция и Дания', 'Великобритания и Франция', 'Россия'];
let words = [];
let result = '';
for (let i = 0; i < words_all_list.length; i++) {
  const index = words_string.indexOf(words_all_list[i]);
  if (index !== -1) {
    words.push({index: index, word: words_all_list[i]})
  }
}
words.sort(function(a, b) {
  let res = 0
  if (a.index > b.index) {
    res = 1
  } else {
    res = -1
  }
  return res;
});
result = words.map(function(el) {
  return el.word;
}).join('');
console.log(result);

→ Ссылка
Автор решения: OPTIMUS PRIME

В регулярных выражениях существует ключевой символ | ИЛИ.
Т.е. можно искать совпадения в виде /франция|дания|россия/

let str = "Сегодня будут играть Швеция и Дания, а завтра Великобритания и Франция. Оба матча пройдут чебурашка.";

console.log( getMatchedArr(str, ["Дания", "Венгрия", "Франция"]).join(", ") );

function getMatchedArr(str, tryMatch = []) {
  let regex = new RegExp( tryMatch.join("|"), "gi" );
  return str.match( regex );
}

→ Ссылка