编写正则表达式完成表单验证。一,验证用户格式是否符合要求,用户名中只能包含英文字母,且长度为4~12个字符,二,验证密码格式是否编写要求三,验证QQ号格式是否符合要求?
时间: 2024-11-12 10:45:16 浏览: 12
常用正则表达式验证
在Python中,你可以使用`re`模块(Regular Expression)来编写正则表达式进行表单验证。这里我会分别介绍每个要求的正则表达式:
1. **验证用户名**:
对于用户名,我们可以定义一个只包含字母(大小写不限),且长度在4到12个字符之间的正则模式。这是一个例子:
```python
import re
def validate_username(username):
pattern = r"^[a-zA-Z]{4,12}$"
if re.match(pattern, username):
return True
else:
return False
```
如果用户名不符合这个模式,`re.match()`会返回`None`。
2. **验证密码**:
密码通常会更复杂,可能需要包含数字、特殊字符等。例如,你可以用以下正则表达式,允许8到16个字符,至少包含一个数字和一个大写字母:
```python
password_pattern = r"^(?=.*[A-Z])(?=.*\d)[a-zA-Z\d!@#$%^&*()_+-=]{8,16}$"
```
3. **验证QQ号**:
QQ号通常是10位数字,格式固定。正则表达式如下:
```python
qq_pattern = r"^\d{10}$"
```
记得在实际应用中,除了正则匹配,还应检查输入是否为空或者是否有非法字符。下面是完整的验证函数示例:
```python
def validate_form(username, password, qq):
username_pattern = r"^[a-zA-Z]{4,12}$"
password_pattern = r"^(?=.*[A-Z])(?=.*\d)[a-zA-Z\d!@#$%^&*()_+-=]{8,16}$"
qq_pattern = r"^\d{10}$"
if not username or not re.match(username_pattern, username) or \
not password or not re.match(password_pattern, password) or \
not qq or not re.match(qq_pattern, qq):
return "Invalid input detected."
else:
return "All inputs are valid."
# 使用示例
result = validate_form("myUser", "P@ssw0rd123", "1234567890")
print(result)
```
阅读全文