@bozedai

Как в JavaScript заменить (replace) группу в регулярном выражении с условием вхождения?

Дана строка "abc" или "adc"

Нужно заменить с помощью replace без использования callback-функции это выражение, в зависимости от того как символ стоит посередине.

Если "abc", то строка должна стать "a-b", а если "adc", то "a*c". Т.е. условие должно быть в заменяющем выражении, возможно ли это?

/(a)(b)(c)/.replace("$1$2$3")
  • Вопрос задан
  • 532 просмотра
Пригласить эксперта
Ответы на вопрос 2
qork
@qork
{ background: #F00B42 }
Вызываете метод replace у строки и передаёте регулярку и коллбек. В коллбеке пишете условия, по которым должна произойти замена.
MDN: String.prototype.replace()
Ответ написан
Tim-A-2020
@Tim-A-2020
function regReplace(str, symbol) {
    return str.replace(/([\w\d]{1})(([\w\d]{1}))([\w\d]{1})/, '$1' + symbol + '$2');
}
var str = 'abc';
if (str[1] == 'b') {
    console.log(regReplace(str, '-'))
} else if (str[1] == 'd') {
    console.log(regReplace(str, '*'))
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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