Я думаю над этим вопросом от freeCodeCamp. Это ссылка: Регулярные выражения: положительный и отрицательный взгляд вперед
Задача: используйте опережающие выражения в pwRegex для сопоставления паролей длиной более 5 символов, не начинаются с цифр и состоят из двух последовательных цифр.
let sampleWord = "astronaut";
let pwRegex = // Change this line
result = pwRegex.test(sampleWord);
Сначала типовой ответ, который показывает сайт: /^\D(?=\w{5})(?=\w*\d{2})/;
Вот мои вопросы:
Почему не нужна запятая после 5? В вопросе написано «длиннее 5 символов», поэтому я думаю, что это должно быть {5,}, а не {5}.
Как я могу сделать просмотр вперед для проверки последовательных цифр? Я думаю, что часть "(? = \ W * \ d {2})" недостаточно хороша для проверки последовательных цифр. Я пробовал следующие коды на своей консоли chrome:
let mytest ="pass75";
let Regex = /^\D(?=\w{5,})(?=\w*\d{2})/; //This is the site's model answer.
Regex.test(mytest); //=>True
«7» и «5» не являются последовательными цифрами, но это верно, поэтому я думаю, что этот ответ модели неполный. Что вы думаете? Кто-нибудь может объяснить, как решить эти вопросы?