Положительный и отрицательный Lookahead
Lookaheads
- это шаблоны, которые говорят JavaScript для поиска в вашей строке, чтобы проверить шаблоны далее. Это может быть полезно, если вы хотите искать несколько шаблонов по одной и той же строке. Есть два вида lookaheads
: positive lookahead
и negative lookahead
. positive lookahead
взгляд будет выглядеть так, чтобы убедиться, что элемент в шаблоне поиска существует, но на самом деле не будет соответствовать ему. Положительный lookahead используется как (?=...)
где ...
- искомая часть, которая не сопоставляется. С другой стороны, negative lookahead
взгляд будет выглядеть так, чтобы убедиться, что элемент в шаблоне поиска отсутствует. Отрицательный lookahead используется как (?!...)
где ...
это шаблон, который вы не хотите быть там. Остальная часть шаблона возвращается, если отрицательная обратная сторона отсутствует. Lookaheads немного запутывают, но некоторые примеры помогут.
пусть quit = "qu";Более практическое использование
пусть noquit = "qt";
пусть quRegex = / q (? = u) /;
пусть qRegex = / q (?! u) /;
quit.match (quRegex); // Возвращает ["q"]
noquit.match (qRegex); // Возвращает ["q"]
lookaheads
- проверка двух или более шаблонов в одной строке. Вот (наивно) простая проверка пароля, которая ищет от 3 до 6 символов и по крайней мере одно число: пусть пароль = "abc123";
пусть checkPass = / (? = \ w {3,6}) (? = \ D * \ d) /;
checkPass.test (пароль); // Возвращает true
Используйте lookaheads
в pwRegex
, чтобы соответствовать пароли, которые больше 5 символов и имеют две последовательные цифры.