В этом руководстве вы узнаете об якорях регулярных выражений в JavaScript, которые позволяют сопоставлять позиции до или после символов.
Якоря имеют особое значение в регулярных выражениях. Они не соответствуют ни одному символу. Вместо этого они соответствуют положению до или после символов:
^
— якорь вставки соответствует началу текста.$
— якорь доллара соответствует концу текста.
Пример:
let str = 'JavaScript'; console.log(/^J/.test(str));
Выход:
true
/^J/
соответствует любому тексту, который начинается с буквы J
Он возвращает true
.
Следующий пример возвращает false
, так как строка JavaScript
не начинается с буквы S
:
let str = 'JavaScript'; console.log(/^S/.test(str));
Выход:
false
Точно так же следующий пример возвращает true
, потому что строка JavaScript
заканчивается буквой t
:
let str = 'JavaScript'; console.log(/t$/.test(str));
Выход:
true
Вам часто придется использовать якоря ^
и $
, чтобы проверить, полностью ли строка соответствует шаблону.
В следующем примере проверяется, соответствует ли входная строка формату времени hh:mm
, например 12:05
:
let isValid = /^\d\d:\d\d$/.test('12:05'); console.log(isValid);
Выход:
true
Следующий пример возвращает false
:
let valid = /^\d\d:\d\d$/.test('12:105'); console.log(valid);
Выход:
false
Многострочный режим якорей ^
и $
: флаг m
По умолчанию якорь ^
или $
является однострочным режимом. В однострочном режиме привязка ^
и $
соответствует началу и концу строки.
Чтобы включить многострочный режим, вы используете флаг m
. В многострочном режиме якорь ^
или $
соответствует началу или концу строки, а также началу или концу строк.
Следующий пример возвращает только первую цифру многострочной строки:
let str = `1st line 2nd line 3rd line`; let re = /^\d/g; let matches = str.match(re); console.log(matches);
Выход:
["1"]
Если вы добавите флаг m
, якорь ^
также будет соответствовать цифре в начале строки, например:
let str = `1st line 2nd line 3rd line`; let re = /^\d/gm; let matches = str.match(re); console.log(matches);
Выход:
["1", "2", "3"]
Заключение
- Используйте
^
, чтобы соответствовать началу текста. - Используйте привязку
$
, чтобы соответствовать концу текста. - Используйте флаг
m
, чтобы включить многострочный режим, который предписывает^
и$
соответствовать началу и концу текста, а также началу и концу строки.