(1) 设计用户名校验函数:长度6-18之间,由大小写英文字符、数字、下划线组成,且首字母不是数字及下划线,数字只能出现在末尾,末尾不能是下划线。
时间: 2024-02-19 08:58:06 浏览: 18
好的,我可以为您设计一个用户名校验函数。以下是该函数的Python实现:
```python
import re
def check_username(username):
if not 6 <= len(username) <= 18:
return False
if not re.match(r'^[a-zA-Z][a-zA-Z0-9_]*[a-zA-Z0-9]$', username):
return False
if username[-1] == '_' or username[-2:].isdigit():
return False
return True
```
该函数首先检查用户名长度是否在6到18之间,如果不是则返回False。接着,它使用正则表达式检查用户名是否由大小写英文字母、数字、下划线组成,且首字母不是数字或下划线,数字只能出现在末尾,且末尾不能是下划线。如果不符合要求,则返回False。最后,如果用户名符合所有要求,则返回True。
您可以通过调用该函数并传入用户名来进行校验,例如:
```python
username = input('请输入用户名:')
if check_username(username):
print('用户名合法')
else:
print('用户名不合法')
```
请注意,由于本函数使用了正则表达式进行校验,因此在使用前需要导入re模块。
相关问题
设计密码校验函数:长度8-16之间,大写英文字符、小写英文字符、数字、特殊字符必须都有。将这些字符检验函数全部保存为一个字符检验模块(文件),在其它程序中导入这个字符检验模块,可以直接使用其内的所有字符校验函数。(程序代码截图)
好的,我可以为您设计一个密码校验函数,并将其与其他字符检验函数保存在一个模块中。以下是该模块的Python实现:
```python
import re
def check_length(password):
return 8 <= len(password) <= 16
def check_uppercase(password):
return bool(re.search(r'[A-Z]', password))
def check_lowercase(password):
return bool(re.search(r'[a-z]', password))
def check_digit(password):
return bool(re.search(r'\d', password))
def check_special(password):
return bool(re.search(r'[!@#$%^&*()_+-=\\\[\]{}|;\':",./<>?]', password))
def check_password(password):
return all([
check_length(password),
check_uppercase(password),
check_lowercase(password),
check_digit(password),
check_special(password)
])
```
该模块包含了以下函数:
- `check_length`:检查密码长度是否在8到16之间。
- `check_uppercase`:检查密码中是否包含大写英文字母。
- `check_lowercase`:检查密码中是否包含小写英文字母。
- `check_digit`:检查密码中是否包含数字。
- `check_special`:检查密码中是否包含特殊字符。
- `check_password`:综合检查密码是否符合要求,即密码长度在8到16之间,且包含大写英文字母、小写英文字母、数字、特殊字符。
在其他程序中,您可以通过导入该模块并调用其中的函数来进行字符校验,例如:
```python
import character_check
password = input('请输入密码:')
if character_check.check_password(password):
print('密码合法')
else:
print('密码不合法')
```
请注意,由于本模块使用了正则表达式进行校验,因此在使用前需要导入re模块。
正则校验:介于1-255个字符之间,使用中文、大小写字母、数字、句点、下划线和连字符;不能包含斜杠,不能以句点开头。
好的,以下是满足您要求的正则表达式:
```
^[^\./][\u4e00-\u9fa5a-zA-Z0-9_\-\.]{0,253}[^\./]$
```
解释如下:
- `^` 匹配字符串的开始
- `[^\./]` 首位不能是句点或斜杠
- `[\u4e00-\u9fa5a-zA-Z0-9_\-\.]{0,253}` 匹配介于 1-255 个字符之间的中文、大小写字母、数字、句点、下划线和连字符,最长为 253 个字符
- `[^\./]` 末尾也不能是句点或斜杠
- `$` 匹配字符串的结束
使用该正则表达式可以实现对用户输入的校验,确保其符合条件。