Page 268 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 268
А
ГЛ В А 7
1
Р е гул р н ы е в ы ра ж е н и я
я
Регулярные выражения (regular expression) позволяют выполнить сложный функци
ональный анализ текстовых строк. Если вам нужно проанализировать строки, кото
рые выглядят, как адрес электронной почты или URL, или номер телефона, вот здесь
и пригодятся регулярные выражения. Естественным дополнением к процессу анализа
строк является операция замены строк, разумеется с помощью регулярных выраже
ний. Например, может возникнуть необходимость определить строки, которые выгля
дят, как адреса электронной почты, и заменить их гиперссылками на эти адреса.
Во многих вводных курсах по регулярным выражениям используются такие за
гадочные примеры, как "поиск соответствия аааЬа и аЬааЬа, но не аЬЬа". С их помо
щью демонстрируется преимущество разделения сложных регулярных выражений
на четкие блоки функциональных возможностей. Однако недостаток таких примеров
лежит на поверхности - это их бессмысленность (когда вам в реальности понадо
бится искать соответствие строке аааЬа?). Я собираюсь познакомить вас с возмож
ностями регулярных выражений на реальных и практических примерах.
Термин "регулярное выражение" (regular expression) зачастую сокращают
до "regex" или "regexp"; в этой книге мы будем использовать их для краткости.
Распознаван и е и замена подстрок
Основная задача регулярного выражения - распознать подстроку в пределах
строки и, при необходимости, заменить ее на другую строку. Регулярные выражения
позволяют делать это с невероятной мощью и гибкостью. Таким образом, прежде
чем перейти к ним, давайте сначала кратко рассмотрим процедуру поиска подстроки
без использования регулярного выражения и ее замену с помощью методов String .
prototype. Такая задача возникает довольно часто даже в небольших приложениях.
Если все, что необходимо сделать, - это определить, существует ли некая под
строка в строке, будет вполне достаточно следующих методов String . prototype.
const input = "As I was going to Saint Ives" ;
input . s tartsWith ( " As" ) / / true
input . e ndsWith ( " Iv s " ) // true
e

