Убрать все содержимое строки, кроме определенных слов
Надо убрать из строки все символы, кроме определенных слов, например: "Швеция и Дания" и "Великобритания и Франция"
Ответы (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 );
}