Skip to content

Instantly share code, notes, and snippets.

@bbelyeu
Created September 14, 2015 17:11
Show Gist options
  • Save bbelyeu/5abbb28af9a558aeb44e to your computer and use it in GitHub Desktop.
Save bbelyeu/5abbb28af9a558aeb44e to your computer and use it in GitHub Desktop.
import re
def valid_username(string):
"""
>>> valid_username('a')
True
>>> valid_username('brad')
True
>>> valid_username('0')
True
>>> valid_username('123')
True
>>> valid_username('brad1979')
True
>>> valid_username('-brad-1979-')
True
>>> valid_username('_brad_1979_')
True
>>> valid_username("brad's_username")
True
>>> valid_username('brad+andrea')
True
>>> valid_username('*b*r*a*d*')
True
>>> valid_username('*')
True
>>> valid_username('$$$brad$$$')
True
>>> valid_username('$')
True
>>> valid_username('b^r^a^d')
True
>>> valid_username('br&rea')
True
>>> valid_username('%%%%%%%%%%%%%%%%%%%%%%')
True
>>> valid_username('brad===awesome')
True
>>> valid_username('~~~brad~~~')
True
>>> valid_username('brad!!!!')
True
>>> valid_username('?b')
True
>>> valid_username('br{and}rea')
True
>>> valid_username('{')
True
>>> valid_username('}')
True
>>> valid_username('é')
False
>>> valid_username('ñ')
False
>>> valid_username('br(and)rea')
False
>>> valid_username('"brad"')
False
>>> valid_username('@')
False
>>> valid_username('00000000000000000000000000000000000000000')
False
>>> valid_username('###')
False
"""
return bool(
re.search('^[a-z0-9_-\'+*$^&%=~!?{}]+$', string, re.I)
and len(string) < 65
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment