gpt4 book ai didi

python - 为 mongoengine 0.9.0 StringField 设置正则表达式模式

转载 作者:行者123 更新时间:2023-11-28 17:11:37 25 4
gpt4 key购买 nike

我将 python 2.7.12 与 pymongo 2.8.1、django 1.11.7、mongoengine 0.9.0 和 mongodb 3.4.10 结合使用。我正在创建一个自定义用户模型,它将文档插入到常规的 mongodb 集合中。我从 mongoengine 继承了“文档”类来创建字符串密码字段。我一直在尝试为以下条件创建正则表达式模式:

  • 长度:8-25 个字符
  • 至少1个大写字母
  • 至少1个小写字母
  • 至少 1 个号码
  • 至少 1 个特殊字符

我尝试以下列方式使用 re.compile():

import re
regexp = re.compile('[A-Za-z0-9@#$%^&+=]', max_length=25, min_length=8)
password = StringField(regex=regexp)

我发送了带有无效密码的 HTTP POST 请求,它只会在长度小于 8 或大于 25 时抛出错误,否则它们会通过。我是 mongoengine 的新手,我不太确定正则表达式参数需要什么样的输入,我也无法找到 StringField 的示例。那我做错了什么?

最佳答案

^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[@#$%^&+=]).{8,25}$

您可以试试这个。每个条件都是使用先行添加的。如果需要,可以添加更多特殊字符。

See demo.

关于python - 为 mongoengine 0.9.0 StringField 设置正则表达式模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47227236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com