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,})$/