У меня сложилось впечатление, что вы чувствуете, как проходите через это в настоящий момент, и вы многое можете сделать, чтобы сделать ваш код более безопасным и более эффективным в целом. Циклы while - опасный способ убить время для начала.
С точки зрения вашей проблемы регулярного выражения, попробуйте использовать .test, если вы ищете логический (true или false) ответ на ваш тест регулярного выражения
Например
/([A-Z]|[a-z])/.test(userInput3)
вернет true, если все символы являются буквами от a до z в нижнем или верхнем регистре (| is или).
если вы добавите! перед тестом вы вернете его логическое значение (true станет false и наоборот)
чтобы вы могли пойти:
if (!/([A-Z]|[a-z])/.test(userInput3)){
/* do something if userInput3 contains anything other than the letters a-z in
upper or lower case */
}
так