Регулярные выражения в javascript. Часть 3

Главная » Видеоуроки » JavaScript » Регулярные выражения в javascript. Часть 3
В этом уроке мы продолжим изучать регулярные выражения — поговорим о квантификаторах, а также о двух режимах поиска через квантфикаторы — жадный и ленивый. Если вы не смотрели прошлые уроки на тему регулярных выражений, то можно посмотреть их здесь и здесь.
Квантифакторы в регулярном выражении записываются как <strong>{n}, где n — количество символов для поиска</strong>.
Кроме того, мы рассмотрели некоторые служебные символы, которые можно записать через квантификаторы

? — {0,1} — нуль или один
* — {0,} — нуль или более
. — любой символ

<strong>Замечание:</strong> в примере с patternFive я сказал, что поиск ведется до конца строки, однако в результате вывелись аттрибуты href и class (что верно). Я забыл упомянуть, что при жадном поиске в нашем примере условие «любой символ» выполнялся до конца строки, но кавычка так и не нашлась. Поэтому паттерн «пошел назад», ища уже кавычку, поэтому получился данный результат.

Код урока

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
      <script type="text/javascript">
        // Квантификаторы
        // {n}, где n - кол-во символов

        // var pattern = /\w\w\w/
        var pattern = /\w{3}/;
        var patternTwo = /\w{3,10}/;

        // ? = {0,1} - нуль или один
        // * = {0,} - нуль или более
        // . - любой символ

        var str = "Каиль камиль kamil";

        var patternThree = /кам?иль/ig;
        var patternFour = /кам*иль/ig;

        console.log(str.match(patternThree));
        console.log(str.match(patternFour));

        //  жадный и ленивый режим

        var link = '<a href="http://kamil-abzalov.ru" class="test"></a>';

        var patternFive = /href=".+"/gi; //жадный поиск
        var patternSix = /href=".+?"/gi; // ленивый поиск
        var patternSeven = /href="[^"]+"/gi; // аналог жадного

        console.log(link.match(patternFive));
        console.log(link.match(patternSix));
        console.log(link.match(patternSeven));


        /*В качестве разминки написать и проверить шаблон для поиска:

        1. Десятичная дробь
        2. Дата формата (10.07.2016)
        3. Поиск заголовков h1-h6 в строке

        */



      </script>
  </body>
</html>

0 Comments

Submit a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *


Срок проверки reCAPTCHA истек. Перезагрузите страницу.

Pin It on Pinterest

Share This