Tell us what’s happening:
Describe your issue in detail here.
test fails because of**( Your regex should not match the string** BadUs3rnam3)
how to fix this ??
Your code so far
let username = "BadUs3rnam3";
let userCheck = /\^\D\d*$|^\D[a-z][a-z]*?|^\D\d\d+$/gi; // Change this line
let result = userCheck.test(username);
console.log(userCheck.test(username));
console.log(username.match(userCheck));
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36
you may break it down into two parts:
first one should check that the string has at least two letters {2,} and zero or more numbers.
aa
aaaaa123
aaa2324234
second part of the regexp should only check for the last case when string has 1 letter followed by 2 numbers. a12
possible solution: /^([a-z]{2,}\d*|[a-z]\d{2})$/i
upd:
another one approach is to define basic rule like: the string should start from at least one letter and may be followed by zero or more numbers. And then add two additional checks: