Restrict Possible Usernames Why g(global) doesn't pass?

Tell us what’s happening:

The code with /g passes all tests except “JACK” and “RegexGuru” and when I remove it, it does pass all tests. I really don’t understand why, isn’t /g necessary to search in the whole string?

Your code so far


let username = "JackOfAllTrades";
let userCheck = /^[a-z]{2,}\d*$/ig; // Change this line
let result = userCheck.test(username);

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0.

Link to the challenge:
https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/regular-expressions/restrict-possible-usernames

If you add these lines

let result = userCheck.test("JACK");
console.log(result);

and check the browser console you will see true; I think the fact it is not valid as a test case it has something to do with the order of the tests ( probably not the same sorted below the challenge).
Have a look at this link:

1 Like

Probably. All the rest of challenges have this problem as well, \g doesn’t pass the tests.

Thanks for the answer!

1 Like