@prukon
Начинающий разработчик

Как вытащить подстроку на js через регулярку?

Добрый день.
Есть строка:

"Organix (сухие корма) для собак малых пород, с курицей, Adult Dog Small Breed Chicken (12 кг)"


Из нее надо получить две строки.
Первая строка.
Первую строка должна отвечать следующим условиям:
  • Строка содержится в скобках "(" и ")"
  • Строка содержит цифры

на выходе мы должны получить вот такую строку:

"12 кг"


Вторая строка.
Вторая строка должна отвечать следующему условию:
Она не должна содержать строку в скобках (включая скобки), которая содержит цифры.
на выходе мы должны получить вот такую строку:

"Organix (сухие корма) для собак малых пород, с курицей, Adult Dog Small Breed Chicken "
  • Вопрос задан
  • 302 просмотра
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
function getStrings(str) {
  const str1 = str.match(/\(.+?\)/g)?.find(n => /\d/.test(n)) ?? '';
  return {
    str1: str1.slice(1, -1),
    str2: str.replace(str1, ''),
  };
}
Ответ написан
function splitOnTwoParts(str) {
    const regexp = /\([^\(\)]*\d[^\(\)]*\)/;
    const innerStr = str.match(regexp)[0];
    const firstPart = innerStr.slice(1, -1);
    const secondPart = str.replace(innerStr, '');
    return [firstPart, secondPart];
}

splitOnTwoParts("Organix (сухие корма) для собак малых пород, с курицей, Adult Dog Small Breed Chicken (12 кг)");
// ["12 кг", "Organix (сухие корма) для собак малых пород, с курицей, Adult Dog Small Breed Chicken "]
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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