Полный цикл в digital

Функции JavaScript

replace

Метод replace() ищет строку для указанного значения или регулярного выражения и возвращает новую строку, где указанные значения будут заменены.

где_искать.replace(#шаблон для поиска#, на что менять)
'bab'.replace('a', '!') ); // вернет 'b!b'

Если мы что-то положим в карман в регулярке, то в параметре на что заменить мы можем обратиться к этому карману так: $1 – первый карман, $2 второй карман и так далее. Карман $0 соответствует всему выражению.

где_искать.replace(#шаблон для поиска с карманом#, на что менять)
'aaa@bbb ссс@ddd'.replace(#([a-z]+)@([a-z]+)#g, '$2@$1') // вернет bbb@aaa ddd@ссс

replace карман

При работе с методом replace, если мы что-то положим в карман в регулярке, то в строке замены мы можем вставить содержимое этого кармана написав знак доллара $ и номер кармана. Например, $1 - первый карман, $2 - второй карман и так далее.

'x1x x23x x456x xax'.replace(#x(\d+)x#g, '!$1!') // вернет !1! !23! !456! xax

В методе replace, помимо карманов с вашими номерами, всегда доступны также стандартные карманы: $& - всё найденное совпадение, $` и $' -часть строки до и после совпадения. Давайте посмотрим работу с ними на примерах.

'1 23 456'.replace(#\d+#g, '($&)') // вернет (1) (23) (456)
'123@456'.replace(#@#g, "($`@$')") // вернет 123(123@456)456
  1. $` часть строки до совпадения
  2. $' часть строки после совпадения
  3. $& - всё найденное совпадение (равно $0)
  4. $$ - знак доллара

match

Позволяет получить ту часть строки, которая попала под регулярное выражение. Этот метод работает по-разному в зависимости от того, есть модификатор g или нет.

где_искать.match(#шаблон для поиска#)

match без модификатора g

Если вызвать метод match без модификатора g, то он найдет только первое совпадение с регуляркой. Однако, вернет он все равно массив - это будет массив, состоящий из найденного совпадения, с дополнительными свойствами: index – позиция, на которой оно обнаружено и input – строка, в которой был поиск (в принципе последнее - бесполезная штука). А найденная подстрока будет лежать в нулевом элементе возвращенного массива.

let result = 'aaa bbb ccc'.match(#b+#);
alert(result[0]);    // вернет 'bbb' - то, что попало под регулярку
alert(result.index); // вернет 4 - позиция начала 'bbb' в строке
alert(result.input); // вернет 'aaa bbb ccc' - исходную строку

match c модификатором g

Метод возвращает массив подстрок, которые попали под регулярное выражение.

'a aa aaa aaaa'.match(#a+#g); // вернет ['a', 'aa', 'aaa', 'aaaa']

match карман

Карманы представляют собой способ разбить найденное на отдельные части. Для их использования нужно заключить часть регулярки в круглые скобки. В этом случае в массиве с результатом кроме найденной строки также появится и то, что попало под регулярку, стоящую в этих скобках.

В следующем примере мы ищем строки по шаблону буквы x, а между ними - от одной и более букв a. При этом найденные буквы a попадут в карман:

let res = 'sss xaaax zzz'.match(#x(a+)x#);
console.log(res[0]); // выведет 'xaaax' - найденное
console.log(res[1]); // выведет 'aaa' - карман

test

Проверяет, есть ли в строке хотя бы одно совпадение с регуляркой. Если есть - возвращается true, а если нет - false.

#шаблон для поиска#.test(где_искать)
#a+#.test('eee aaa bbb'); // вернет true

Часто данный метод используется для проверки на соответствие регулярному выражению целой строки. Вначале регулярки ставим ^, а в конце $ - этим мы говорим, что под шаблон должна попасть вся строка. Если их не поставить - тогда мы скажем не "вся строка есть email", а "в строке есть email":

#^[a-zA-Z-.]+@[a-z]+\.[a-z]{2,3}$#.test('my-mail@mail.ru') // вернет true
Модификаторы методов
g Глобальный поиск, поиск и замена продолжатся даже после первого удачного совпадения
i Регистронезависимый поиск
x Регулярка перестанет учитывать пробелы
m Многострочный режим
s Однострочный режим
U Нежадный поиск, все операторы повторений станут нежадными, а '?', наоборот, будет добавлять им жадности
u Корректная работа с utf-8, ставьте его, чтобы не было проблем с кириллицей
X Экранировка обычного символа приведет к ошибке. Без него - обычные символы можно экранировать, они все равно будут обозначать сами себя (исключение: цифры, они станут карманами).
Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг