diff --git a/apps/users/serializers/user_serializers.py b/apps/users/serializers/user_serializers.py index 1da88bcd7..d46cd54f4 100644 --- a/apps/users/serializers/user_serializers.py +++ b/apps/users/serializers/user_serializers.py @@ -107,11 +107,19 @@ class RegisterSerializer(ApiMixin, serializers.Serializer): validators.MaxLengthValidator(limit_value=20, message=ExceptionCodeConstants.USERNAME_ERROR.value.message), validators.MinLengthValidator(limit_value=6, - message=ExceptionCodeConstants.USERNAME_ERROR.value.message) + message=ExceptionCodeConstants.USERNAME_ERROR.value.message), + validators.RegexValidator(regex=re.compile("^[a-zA-Z][a-zA-Z1-9_]{5,20}$"), + message="用户名字符数为 6-20 个字符,必须以字母开头,可使用字母、数字、下划线等") ]) - password = serializers.CharField(required=True) + password = serializers.CharField(required=True, validators=[validators.RegexValidator(regex=re.compile( + "^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z_!@#$%^&*`~()-+=]+$)(?![a-z0-9]+$)(?![a-z_!@#$%^&*`~()-+=]+$)" + "(?![0-9_!@#$%^&*`~()-+=]+$)[a-zA-Z0-9_!@#$%^&*`~()-+=]{6,20}$") + , message="密码长度6-20个字符,必须字母、数字、特殊字符组合")]) - re_password = serializers.CharField(required=True) + re_password = serializers.CharField(required=True, validators=[validators.RegexValidator(regex=re.compile( + "^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z_!@#$%^&*`~()-+=]+$)(?![a-z0-9]+$)(?![a-z_!@#$%^&*`~()-+=]+$)" + "(?![0-9_!@#$%^&*`~()-+=]+$)[a-zA-Z0-9_!@#$%^&*`~()-+=]{6,20}$") + , message="密码长度6-20个字符,必须字母、数字、特殊字符组合")]) code = serializers.CharField(required=True)