Regex для требований к паролю, без пробелов

Я не смог найти правильное регулярное выражение для моего случая. Я нашел почти идеальный, но он все еще проходит с ведущими пробелами.

Требования:

var regex = /^\s*(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)\s*$/;

var passwd = "abcdefg12345" //Passes
var passwd = " abcdefg12345" //Does not pass
var passwd = "abcdefg 12345" //Does not pass
var passwd = "abcdefg12345 " //Passes but should not

Любой совет?

Также я хотел бы добавить минимальное требование к длине, как это должно быть сделано?

1 ответ

Решение

Если вы хотите предотвратить пробелы в начале или в конце, просто удалите последний \s, Чтобы установить минимальную длину пароля, измените + квантификатор к {n,}где n - минимальная длина.

Например, следующий шаблон соответствует любой последовательности из 5 или более буквенно-цифровых символов, которая содержит хотя бы одну букву и хотя бы одно число:

/^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]{5,})$/
Другие вопросы по тегам