Javascript regexp match: RegExp.prototype[@@match]() — JavaScript | MDN

$/;

Совпадение последовательностей пробелов

  • Используйте метапоследовательность \s для соответствия любому символу пробела, включая пробелы, табуляции, новые строки и т. д.
  • Используйте квантификатор + для сопоставления одного или нескольких вхождений предыдущего символа.
  • Добавьте глобальный флаг ( g ), чтобы сопоставить все вхождения шаблона в строке.
 const регулярное выражение = /\s+/g; 

Совпадение разрывов строк

  • В зависимости от среды разрывы строк могут быть представлены по-разному.
  • Используйте символ \r для соответствия возврату каретки, символ \n для соответствия символу новой строки и последовательность \r\n
    для соответствия возврату каретки, за которым следует перевод строки.
  • Добавьте глобальные ( g ) и многострочные ( m ) флаги для соответствия всем вхождениям шаблона в строке.
 const регулярное выражение = /\r|\n|\r\n/gm; 9((?!(abc|bcd)).)*$/;
// Где 'abc' и 'bcd' - шаблон, который вы хотите исключить 

Текст внутри скобок

  • Используйте символы \( и \) для соответствия открывающей и закрывающей скобкам соответственно.
  • Используйте группу захвата между ними и исключите символ закрывающей скобки.
  • Используйте квантификатор + для соответствия одному или нескольким символам, если необходимо.
  • Добавить глобальный флаг ( г 9(0?[1-9]|[12][0-9]|3[01])[\/\-](0?[1-9]|1[012])[\/\-]\ д{4}$/;

    Разбить строку на куски размером n

    • Используйте квантификатор . {1,n} для соответствия любому символу между 1 и n раз.
    • Добавьте глобальный флаг ( g ), чтобы сопоставить все вхождения шаблона в строке.
     const регулярное выражение = /.{1,2}/g;
    // Где «2» — количество символов в чанке 

    По сценарию Ангелоса Чалариса

    Меня зовут Ангелос Чаларис, инженер-программист JavaScript из Афин, Греция. Лучшие фрагменты из моих приключений в программировании публикуются здесь, чтобы помочь другим научиться программировать.

    Если вы хотите оставаться на связи, подписывайтесь на меня Гитхаб.

    • Шпаргалки

      Коллекция шпаргалок, которые можно добавить в закладки и возвращаться к ним всякий раз, когда вам нужно что-то найти.

      Коллекция · 15 фрагментов

    • Памятка по регулярным выражениям

      Регулярные выражения — очень полезный инструмент. Сохраните эту шпаргалку на случай, если вам понадобится изучить их синтаксис и ускорить разработку.

      JavaScript, String · 12 июня 2021 г.

    • 6 функций регулярных выражений JavaScript, которые вы можете использовать уже сегодня

      Узнайте, как эффективно использовать регулярные выражения JavaScript с помощью этих 6 мощных функций.

      JavaScript, String · 12 июня 2021 г.

    • Escape RegExp

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

      JavaScript, String · 15 сентября 2020 г.

    ‼️ Разница между String.match() и String.matchAll()

    String.match()

    String.match() это метод в JavaScript, который возвращает массив результатов, соответствующих строке регулярному выражению.

     const регулярное выражение = /t(e)(st(\d?))/g
    константная строка = 'test1test2'
    константные результаты = string.match (регулярное выражение)
    console.log(результаты)
    // → ['тест1', 'тест2']
     

    Возвращаемые результаты зависят от глобальный(г) флаг. Если используется флаг g , мы получим все результаты, но без захвата групп. Если мы удалим флаг g из регулярного выражения, мы получим все группы захвата, но мы получим только первое совпадение. Это выглядит так:

     const regex = /t(e)(st(\d?))/
    константная строка = 'test1test2'
    константные результаты = string.match (регулярное выражение)
    console.log(результаты)
    // → ['test1', 'e', ​​'st1', '2', index: 0, input: 'test1test2', groups: undefined]
     

    Эта строка содержит второе возможное совпадение, начинающееся с 'test2' , но у нас его нет. Если совпадений нет, метод match() возвращает null. Теперь вопрос: как получить все группы захвата для каждого совпадения? Вот где String.matchAll() вступает в игру.

    String.prototype.matchAll()

    String.matchAll() возвращает итератор, который возвращает все совпавшие группы с регулярным выражением, включая захваченные группы. Одна из основных причин использования matchAll() более match() — это возможность доступа к группам захвата.

     const регулярное выражение = /t(e)(st(\d?))/g
    константная строка = 'test1test2'
    константные совпадения = строка.matchAll (регулярное выражение)
    Array.from(совпадения, console.log)
    // -> ['test1', 'e', ​​'st1', '1', index: 0, input: 'test1test2', groups: undefined]
    // ->
    ['test2', 'e', ​​'st2', '2', index: 5, input: 'test1test2', groups: undefined]

    В отличие от match() , которая возвращает массив при глобальном поиске, matchAll() возвращает итератор, который создает массив для каждого совпадения, который также работает с циклами for…of . Если совпадений нет, метод matchAll() возвращает пустой итерируемый объект.

    Итератор создает массив для каждого совпадения, включая группы захвата с несколькими дополнительными свойствами, такими как index , input и groups .

Оставить комментарий

Добавить комментарий

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