Как создать сайт

Начало строки ^ и конец $ в регулярных выражениях

Здравствуйте!  В этом уроке мне хотелось бы рассмотреть как в регулярных выражениях можно выделять начало и конец строки.  Символ каретки ‘^’ и доллара ‘$’  в регулярном выражении могут иметь особый смысл.

Знак каретки ^ или циркумфлекс совпадает с началом текста, а доллар $ –  с концом. Их еще называют якорями

Вот эти самые якоря они как-бы не символы а проверки.

До сих пор  мы с вами говорили о регулярках, которые  могут искать один или несколько символов.  Если находят, то включают символы в результирующую строку.

А  вот якоря – не такие. Когда  идет поиск до якоря – он проверит, есть ли соответствие, если оно  есть –  то продолжит идти  дальше по шаблону.

Символ каретки ^ обычно используют что поиск следует начинать именно с начала строки.

начало иконец строки в регулярных выражениях

Например, без каретки найдёт все числа:

var str1 = '1005 попугаев съели 5001 бананов!';
alert( str.match(/\d+/ig) ); // 1005, 5001 (нашло все числа)

А вот с кареткой – только первое:

var str1 = '1005 попугаев съели 5001 бананов!';
alert( str1.match(/^\d+/ig) ); // 1005 ( ищет только в начале строки)

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

var str1 = '1005 попугаев съели 5001';
alert( str1.match(/\d+$/ig) ); // 5001

Оба якоря следует использовать одновременно, если требуется, чтобы паттерн охватывал текст с начала и до конца строки. Обычно применяется при валидации форм.

Например, если хотим проверить, что в переменной num1 содержится именно дробь десятичная.

Ей будет соответствовать шаблон \d+\.\d+:

var num1 = "ля-ля 12.35";
alert( num1.match(/\d+\.\d+/ig) ); // 12.35

Наша же задача – проверить, что num1 целиком соответствует паттерну \d+\.\d+.

Читайте также  Методы RegExp и String для работы с регулярными выражениями

Для этого используем в шаблоне в якоря ^…$:

var num1 = "ля-ля 12.35";
alert( num1.match(/^\d+\.\d+$/ig) ); // null, не дробь
var num1 = "12.35";
alert( num.match(/^\d+\.\d+$/ig) ); // 12.35, дробь!

Теперь поиск будет искать начало строки, за которым найдет число, затем точка, ещё число и конец текста. Это как раз то, что нам и нужно.

ИТОГИ

Для того чтобы  ограничить поиск по регулярному выражению  началом и концом строки используются специальные символы, называемые якорями.

Символ ^ – означает начать  поиск с начала строки.

Символ $ – означает искать с конца строки.

Задачи

Шаблон ^$

 Предложите строку, которая подойдёт под регулярное выражение ^$.

Проверьте IP-адрес

 IP-адрес сетевого интерфейса состоит из 4-х  трехзначных десятичных чисел, разделённых точкой.

Например: ‘10.1.2.3’.
Напишите регулярное выражение, которое по строке проверяет, является ли она корректным IP-адресом.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Плюсануть
Поделиться
Понравилась запись? Подпишитесь на обновления по почте:

Об авторе

admin administrator

Оставить ответ

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: