@Indanco

Как убрать последнее вхождение replace?

Подскажите пожалуйста как убрать "г." из строки? Сейчас получается такой результат
1 авста 2022

const str = '1 августа 2022 г.';
const newstr = str.replace(/г./gm, ' ')
  • Вопрос задан
  • 428 просмотров
Решения вопроса 4
sergiks
@sergiks Куратор тега JavaScript
♬♬
Точка в регулярном выражении – один из специальных символов – означает «любой 1 символ». Чтобы буквально обозначить обычную точку, надо её экранировать обратным слешем: \.

В задаче, наверное, вовсе не нужны регулярки, тут же простая замена подстроки:
const str = '1 августа 2022 г.';
str.replace(' г.', '')  // "1 августа 2022"

Если замен несколько, то вместо replace() использовать метод replaceAll()
Ответ написан
Комментировать
@PavelMos
Последнее вхождение в общем виде или последнее здесь ? Если здесь, то
"\sг\.$" - пробел, г, точка, конец строки
Ответ написан
Комментировать
dextromethorphanum
@dextromethorphanum
По хорошему — изменить выражение с /г./gm на /г\./gm (экранировать точку, потому что смысл регурярного выражения из-за этого меняется). Цитата: "Точка: соответствует любому отдельному символу, кроме новой строки".

Но для случаев, когда "г." найдётся и в середине строки, правильнее будет так: /г\.$/gm.

const str = '1 августа 2022 г.';
const newstr = str.replace(/г\.$/gm, '')
Ответ написан
Комментировать
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
'1 августа г. 2022 г.'.replace(/ г.$/gm, '')
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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