Regular Expressions: Positive and Negative Lookahead -- incorrect solution

The logic in the solution for this question appears to be incorrect.

It says to “Use lookaheads in the pwRegex to match passwords that are greater than 5 characters long and have two consecutive digits.”

Here’s what I put, which wasn’t accepted.

let sampleWord = "astronaut";
let pwRegex = /(?=\w{6,})(?=\d{2})/; // Change this line
let result = pwRegex.test(sampleWord);

One place I went wrong is {6,} – in the hint it says it’s {5,}. But it says greater than 5 characters (in other words, at least 6), and {5,} means “at least 5 characters.”

I don’t think that’s why your solution failed actually

I think it’s because your second lookahead requires there to be two digits at the current position, and not anywhere further ahead

1 Like

Correct – it did actually pass with

let sampleWord = "astronaut";
let pwRegex = /(?=\w{6,})(?=\D*\d{2})/;
let result = pwRegex.test(sampleWord);

However, in my opinion {5,} shouldn’t be accepted.

I see what you mean and I’m inclined to agree

Perhaps it’d be worth attaching that sentiment to this github issue:

In that issue we discussed the question as though 5 was the correct value, I guess we overlooked the challenge description

1 Like

This has already been discussed and the new solution that was already merged to the master branch (but has not yet been deployed to production) uses \w{6,}. However, @gebulmer and I have discussed how the challenge really needs to possibly change, because even the newer solution does not meet all the challenge requirements.