Как пользоваться регуляркой в методе replace()?

Метод replace() в JavaScript позволяет заменить часть строки на другую строку или выполнить другие операции с помощью регулярного выражения. Регулярные выражения — это мощный инструмент для работы с текстом, позволяющий искать соответствия определенным шаблонам.

Синтаксис метода replace() выглядит так:

string.replace(regexp|substr, newSubstr|function)

Первый параметр метода replace() может быть регулярным выражением (regexp) или подстрокой (substr), которую вы хотите заменить. Второй параметр может быть новой строкой (newSubstr), на которую вы хотите заменить найденные соответствия, или функцией (function), которую необходимо выполнить для обработки найденных соответствий.

Если первым параметром передается регулярное выражение, оно будет использоваться для поиска соответствий в исходной строке. Например, чтобы заменить все цифры в строке на символ "x", можно использовать следующий код:

var str = '123 Пример строки 456';
var newStr = str.replace(/d/g, 'x');
console.log(newStr); // Выводит: 'xxx Пример строки xxx'

В данном примере регулярное выражение /d/ означает "любая цифра", а флаг /g позволяет найти все соответствия, а не только первое.

Если первым параметром передается подстрока, она будет заменена на указанную новую подстроку. Например:

var str = 'Привет мир!';
var newStr = str.replace('мир', 'JavaScript');
console.log(newStr); // Выводит: 'Привет JavaScript!'

Также, вторым параметром можно передать функцию для обработки найденных соответствий. Функция будет вызываться для каждого найденного соответствия, и в нее будут переданы найденное соответствие, позиция найденного соответствия, а также исходная строка. Она должна возвращать строку, которая будет заменять исходное соответствие. Например:

var str = 'Привет юзер@домен.com! Как дела?';
var newStr = str.replace(/(w+@w+.w+)/g, function(match, p1) {
  return '[email: ' + p1 + ']';
});
console.log(newStr); // Выводит: 'Привет [email: юзер@домен.com]! Как дела?'

В данном примере регулярное выражение /(w+@w+.w+)/g ищет соответствия, которые имеют формат электронной почты, а функция заменяет найденное соответствие на строку с префиксом "[email: ]".

В итоге, метод replace() с использованием регулярных выражений предоставляет мощный инструмент для поиска и замены текста. Он позволяет заменять части строки на другую строку или выполнять другие операции с помощью гибкого паттерна поиска. Ознакомление с регулярными выражениями и методом replace() может значительно улучшить вашу работу с текстом в JavaScript.