Лучше реплейсить сразу 2 и более пробела на один а затем можно применять ваш паттерн, получиться "
Можно ввести любые символы и цифры".
let text = text.replace(/\s{2,}/g, ' ').trim();// trim уберет пробелы в начале и в конце
А если пробелы нельзя то
let regex=/^\S{1,20}$/g