Tell us what’s happening:
Hello! I am confused comparing the instructions to the hints for this exercise.
Instructions state:
“Use lookaheads in the pwRegex to match passwords that are greater than 5 characters long, do not begin with numbers, and have two consecutive digits.”
However the hints state:
“A second lookahead must be used to check for consecutive numerical values at the end of the string.”
and
“Remember to specify the exact amount of numbers you want to appear at the end of the string.”
So it seems to me that the instructions are asking us to lookahead for two consecutive digits anywhere except the first character in the string
yet the hints are stating that we must specify the numerical values we want to appear at the end of the string.
It seems the instructions and the hints are providing conflicting info, so if someone can please clarify that they are not conflicting and explain why they are not, it might help me better understand how to solve the challenge.
Your code so far
let sampleWord = "astronaut";
let pwRegex = /(?=\w{6,})(?=\D*\d{2})/; // Change this line
let result = pwRegex.test(sampleWord);
Your browser information:
User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36.
@ILM - do you mean I should disregard the hints, or instructions, or both? (in the case of both I would be even more confused, so I hope that’s not the case!). As you probably know by now, I find the instructions exasperating at times.
Here is the code I have now:
let sampleWord = "astronaut";
let pwRegex = /(?=\w{6,})(?=\D+\d{2})/; // Change this line
let result = pwRegex.test(sampleWord);
I never said “disregard”, I said you should take the articles in the guide with a pinch of salt as you can’t know if they were updated since last challenge update - there are many guide articles and the challenges have often minor adjustments.
I just said that if you have doubts, check the tests and see which interpretation correspond to tests behaviour.
For your regex, you may want to specify where to start the test, as right now there are no specifications, and the substring pass99 is matched by your regex, so the test method returns true
I’m not sure what you mean by saying that I should take the articles in the guide with a pinch of salt - are you referring to the hints and solutions?
Can you please clarify what you mean by “if you have doubts, check the tests and see which interpretation correspond to tests behaviour” and “you may want to specify where to start the test?”
you are asking if numbers must be only at the end - but astr1on11aut must pass the test, so no, they can be anywhere in the string but at the beginning.
the test method searches for a substring that matches the pattern, if it finds it returns true. 8pass99 has the substring pass99 that matches the pattern, so it returns true.
You need to specify that the substring must start at the beginning of the string to avoid this.
those are guide articles, you find them in the Guide subforum.
It happens that the guide get it of sync with the challenges, keeping everything up to date is a lot of work.
I’m not sure what you mean by the substring must start at the beginning of the string. I think that I am not quite understanding how this challenge works. Anyway, I appreciate the help.
the test method returns true or false based on if it finds the pattern in the string, or not.
in this case you need to make so that strings that have these requisites make the test method return true: longer than 5 characters, can’t start with a number, there are at least two consecutive numbers in the string
the test method will check for a substring in the string that matches the pattern.
if the substring that matches the pattern start in the middle of the string than the condition of “can’t start with a number” can’t be confirmed, so you need to make sure the pattern will match only from the start of the string.
your first lookahead will look for at least 6 characters - string length condition satisfied
second lookahead: \D* means “0 or more non number characters” - there must be at least one non number at the beginning \d{2} - 2 consecutive numbers. This is correct.