Найти - Пользователи
Полная версия: Регулярное выражение для пароля
Начало » Python для новичков » Регулярное выражение для пароля
1
DmBand
Я использую следующее регулярное выражение для валидации пароля в Django:
 regex=r'^[^а-яА-Я]*$'
т.е. я исключаю все символы кириллицы.
Но, если пользователь введёт все пробелы, то пароль пройдет валидацию.
Как правильно написать регулярное выражение, согласно которому в пароле может присутствовать пробел, но не так, чтобы весь пароль состоял из пробелов?
Я не силён в регулярных выражениях, поэтому прошу помощи.
py.user.next
DmBand
Но, если пользователь введёт все пробелы, то пароль пройдет валидацию.
Сделай несколько разных проверок одного пароля. И потом применяй их друг за другом. Если проверки все пройдены, то пароль верный. Если хоть одна проверка не пройдена, то пароль неверный.

  
>>> import re
>>> 
>>> def check(string):
...     out = None
...     pat1 = r'^[^а-яёА-ЯЁ]+$'
...     check1 = re.search(pat1, string) is not None
...     pat2 = r'^ +$'
...     check2 = re.search(pat2, string) is None
...     out = check1 and check2
...     return out
... 
>>> check('')
False
>>> check('abc')
True
>>> check('abc123')
True
>>> check('абв')
False
>>> check('abcабв')
False
>>> check('a b c')
True
>>> check('а б в')
False
>>> check('   ')
False
>>>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB