Якоря регулярных выражений в JavaScript на примерах

В этом руководстве вы узнаете об якорях регулярных выражений в 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, чтобы включить многострочный режим, который предписывает ^ и $ соответствовать началу и концу текста, а также началу и концу строки.
Рейтинг
( Пока оценок нет )
Александр Русаков / автор статьи
Программист, разработчик, 12 лет опыта работы в крупных компаниях. Быстро освоил typescript, делюсь своими знаниями на страницах этого сайта.
Загрузка ...
JavaScript и TypeScript