Clarification on solutions

Tell us what’s happening:

/(?=\w{5,})(?=\D\D*\d{2})/
My solution reads as follows: lookahead for any character appearing 5 or more times and lookahead again for a pattern of two non digits, one of which appearing zero or more times, with two consecutive digits followed.

(?=\w{6})(?=\w*\d{2})
whereas freecodecamp’s solution reads as follows: lookahead for a pattern that is of 6 character length and lookahead again for any character appearing zero or times, with 2 consecutive digits.

Is freecodecamp’s more general? And do I understand what is going on?

Your code so far


let sampleWord = "12345";
let pwRegex = /(?=\w{5,})(?=\D\D*\d{2})/; // or (?=\w{6})(?=\w*\d{2})
let result = pwRegex.test(sampleWord);
let result2 = sampleWord.match(pwRegex);
console.log(result);
console.log(result2);

Challenge: Positive and Negative Lookahead

Link to the challenge:

It passes the test. I think FCC’s is more general. It says look for a pattern that is 6 characters long and has two digits in it.
So, “123456” passes.
Yours is saying: look for a pattern that is at least 5 characters long, and has a non-digit followed by maybe a non-digit and then two digits in it. The idea that there should be a non-digit in it, makes it less general. “123456” does not pass. You’ve got an improved version.

Greets,
Karin

I think the guide was not uptdated when the challenge was changed last time, so the solution and hints may not work for current version of the challenge

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.