Завершение регулярных выражений: изучение JavaScript

Сегодня я закончу раздел регулярных выражений JavaScript BootCamp, который я делал в течение последнего месяца. Этот раздел курса был довольно сложным. Я все же выдержал в конце. Итак, вот последние фрагменты кода, которые я выучил.

Спецификаторы количества

В этом разделе я буду использовать спецификаторы количества, чтобы указать верхние и нижние совпадения в шаблонах. Это связано с фигурными скобками. Я поставил два числа в фигурных скобках. Это количество совпадений символа в выражении.

let ohStr "Ohhh no";
let ohRegex = /Oh{3,6} no/; // Change this line
let result = ohRegex.test(ohStr);

// Lower Number of Matches
let haStr = "Hazzzzah";
let haRegex = /Haz{4,}ah/; // Change this line
let result = haRegex.test(haStr);

// Exact Number of Matches
let timStr = "Timmmmber";
let timRegex = /Tim{4}ber/; // Change this line
let result = timRegex.test(timStr);

Проверка существования

Используя оператор вопросительного знака, я могу проверить элементы, которые могут существовать или не существовать в выражении. Итак, в английском языке есть несоответствия в правописании. Иногда слово «фаворит» пишется через «о», а иногда через «оу». Вот пример кода того, о чем я говорю:

let favWord = "favorite";
let favRegex = /favou?rite/; // Change this line
let result = favRegex.test(favWord);

Положительные и отрицательные прогнозы

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

// Positive Lookahead
let sampleWord = "astronaut";
let pwRegex = /(?=\w{6})(?=\D*\d{2})/; // Change this line
let result = pwRegex.test(sampleWord);

// Mixed Character Grouping
let myString = "Eleanor Roosevelt";
let myRegex = /(Eleanor|Franklin) (([A-Z]\.?|[A-Z][a-z]+) )?Roosevelt/; // Change this line
let result = myRegex.test(myString); // Change this line

// Capture Groups
let repeatNum = "42 42 42";
let reRegex = /^(\d+) \1 \1$/; // Change this line
let result = reRegex.test(repeatNum);

// Last Problem
let hello = "   Hello, World!  ";
let wsRegex = /^\s+|\s+$/gi; // Change this line
let result = hello.replace(wsRegex, ""); 

Это была последняя проблема в регулярном выражении. Наконец-то я могу уйти от этого утомительного раздела. Надеюсь, вам всем понравилась часть этого видеоблога, посвященная регулярным выражениям. Следующий раздел будет посвящен отладке. Это должно быть весело. Продолжайте читать для этого.