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
   263   264   265   266   267   268   269   270   271   272   273