В этом руководстве вы узнаете об якорях регулярных выражений в 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, чтобы включить многострочный режим, который предписывает^и$соответствовать началу и концу текста, а также началу и концу строки.
