---
title: Assertions
slug: Web/JavaScript/Guide/Regular_Expressions/Assertions
translation_of: Web/JavaScript/Guide/Regular_Expressions/Assertions
---
{{jsSidebar("JavaScript Guide")}}{{draft}}
Проверка (assertion) задаёт возможность совпадения одним из указанных способов. Проверка может содержать условные выражения, опережающие (look-ahead) и ретроспективные (look-behind) проверки.
Типы
Символ ?
также может быть использован как обычный квантификатор.
Выражение |
Что означает |
x(?=y) |
Опережающая проверка: x подходит только когда за x следует y . Например, /Jack(?=Sprat)/ сработает для "Jack" только когда за ним будет "Sprat".
/Jack(?=Sprat|Frost)/ подойдёт для "Jack" только когда за ним будет "Sprat" или "Frost". Следует заметить, что ни "Sprat" ни "Frost" не будут выданы как часть проверки.
|
x(?!y) |
Отрицательная опережающая проверка: x подходит только когда за x не следует y . Например, /\d+(?!\.)/ сработает для числа в том случае, если за ним не стоит точка. Выполнение кода /\d+(?!\.)/.exec('3.141') выдаст только число "141", поскольку за "3" следует точка.
|
(?<=y)x |
Ретроспективная проверка: x подходит только когда x предшествует y . Например, /(?<=Jack)Sprat/ сработает для "Sprat" только если перед ним есть "Jack". /(?<=Jack|Tom)Sprat/ подойдёт для "Sprat" если перед ним будут "Jack" или "Tom". Заметим, что ни "Jack" ни "Tom" не будут выданы.
|
(?<!y)x |
Отрицательная ретроспективная проверка: x подходит только когда x не предшествует y . Например, /(?<!-)\d+/ сработает для числа в том случае, если перед ним не стоит знак минус. Выполнение кода /(?<!-)\d+/.exec('3') выдаст "3". Код /(?<!-)\d+/.exec('-3') ничего не найдёт, т.к. перед числом есть знак минус.
|
Examples
Browser support
See also