Я думаю, вы должны сделать что-то вроде:
if(test3.match(/([a-z])+/).length === 2 ||
test3.match(/([A-Z])+/).length === 2 &&
test3.match(/([0-9])+/).length === 3)
{
doStuff()
}
РЕДАКТИРОВАТЬ (Объяснение)
String.match возвращает массив совпадений.Таким образом, получая его длину, вы узнаете, если у вас есть правильные данные.
Кроме того, правильное регулярное выражение равно /([a-z]])/g
и равнозначно для A-Z
и 0-9