gpt4 book ai didi

RegEx至少包含1个数字,1个小写字母和1个大写字母

转载 作者:行者123 更新时间:2023-12-04 06:54:38 26 4
gpt4 key购买 nike

目前,我使用的是我发现的一个具有长度限制的文件:

<input #password="ngModel" type="password" name="password"  minlength="5" maxlength="30" pattern="((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,20})" required ngModel>

它有效,但是我不希望结尾处有长度限制。我对正则表达式了解不多,所以我认为最后删除 {6,20}可以完成工作,但是我错了。

所以我的问题是:如何在没有长度限制的情况下使此正则表达式起作用?谢谢!

最佳答案

您正在使用的HTML5 pattern attribute默认情况下 anchor 定一个正则表达式(它实际上用^(?:)$包装模式)。这意味着模式必须与整个字符串匹配。这就是为什么您不能只取出.{6,20}并保持先行的原因。

您需要在开头使用前瞻,并在结尾使用.*(允许输入0个或更多字符)或.+(禁止空输入)(作为使用模式的一部分):

pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).*"

这将被成功转换为 /^(?:(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).*)$/并将按预期工作:
  • ^-字符串
  • 的开始
  • (?:-非捕获组的开始
  • (?=.*\d)-需要从当前位置开始的任何0+个字符后的1位数
  • (?=.*[a-z])-需要从当前位置开始的任何0+个字符后的1个小写字母
  • (?=.*[A-Z])-需要从当前位置开始的任何0+个字符后的1个大写字母
  • .*-任何0个或更多字符
  • )-非捕获组
  • 的结尾
  • $-字符串结尾。
  • 关于RegEx至少包含1个数字,1个小写字母和1个大写字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43127814/

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