@heisenberg1

Как заменить цифры в строке шаблона?

Доброго времени суток.
Подскажите, как получить результат «3 комнаты для 5 гостей» (заменить цифры в строке)?
"4" заменить на advert.rooms (3 например) и "7" заменить на advert.guests (например 5)
Часть шаблона, в котором нужно заменить цифры:
<p class="popup__text popup_capacity">4 комнаты для 7 гостей</p>


Пример замены подобного:
Вывел цену advert.price в блок .popup_price.
Шаблон:
<p class="popup__text popup_price">5200 <span>₽/ночь</span></p>

advert.price случайное импортированное число (например 3100).
Решение:
const price = advertElement.querySelector('.popup_price');
  price.textContent = price.textContent.replace('5200', advert.price).

Получил результат «3100 ₽/ночь».
  • Вопрос задан
  • 75 просмотров
Пригласить эксперта
Ответы на вопрос 1
MrDecoy
@MrDecoy Куратор тега JavaScript
Верставший фронтендер
https://developer.mozilla.org/ru/docs/Web/JavaScri...
const advert = {
  rooms: 3,
  guests: 5,
}

let str = "4 комнаты для 7 гостей"
str = str.replace(/^(\d+)(.*?)(\d+)(.*)$/, `${advert.rooms}$2${advert.guests}$4`) 
// ^ - Начало строки, $ - конец строки
// \d - цифра в регулярный выражениях.
// точка - любой символ, + - одно и более повторений, * - ноль и более повторений
// круглые скобки - выделение в группу

// левая часть в replace - регулярное выражение, которое разбирает строку на части, правая часть - на что заменить части
// $2 и $4 - части исходной строки, попавшие в группу с соответствующим индексом. $1 - первое число, $2 - всё что между первым и вторым числом, $3 - второе число, $4 - всё что после второго числа
// str = "3 комнаты для 5 гостей"
Ответ написан
Ваш ответ на вопрос

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

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