@Denioo

Как вытащить точную строку из массива строк?

Всем привет, подскажите пожалуйста как вытащить точную подстроку из строки?
Допустим есть функция принимающая значение на основе которого мы хотим отфильтровать массив строк.
const arr = ["catboy", "cat", "catman"];

const filtStr = (str) => {
  return arr.filter((item) => item.match(str));
};

console.log(filtStr("cat"));


То есть если я хочу из массива вытащить только строку 'cat', то должна вытаскиваться только 'cat', а вытаскиваются все строки где есть 'cat'. В регулярках к сожалению не особо силен(
Прикрекляю ссылку на codeSandbox

P.s. понял что ошибся с примером.
const arr = ["catboy", "cat", "catman", 'cat-k', 'cat-c'];

и необходимо достать "cat", "cat-k", "cat-c" только по целой части cat?
  • Вопрос задан
  • 173 просмотра
Решения вопроса 2
@Barrakuda74
console.log(filtStr("^cat$"));
Ответ написан
sergiks
@sergiks Куратор тега JavaScript
♬♬
\b в регулярках означает границу слова – здесь подойдёт:
const arr = ["catboy", "cat", "cat-man", "man, ?cat! doo"];

const filtStr = (str) => {
  return arr.filter((item) => item.match(new RegExp(`\\b${str}\\b`, "i")));
};

console.log(filtStr("cat")); // [ "cat", "cat-man", "man, ?cat! doo" ]
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
const arr = ["catboy", "cat", "catman"];

const filtStr = (str) => {
  return arr.filter((item) => item === str);
};

console.log(filtStr("cat"));


Только смысла от такого фильтра никакого...
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Stream Telecom Санкт-Петербург
от 80 000 до 110 000 ₽
NewGen Vision Санкт-Петербург
от 30 000 до 60 000 ₽
от 3 000 до 4 500 €
04 дек. 2021, в 19:54
80000 руб./за проект
04 дек. 2021, в 19:30
50000 руб./за проект
04 дек. 2021, в 19:20
3000 руб./за проект