gpt4 book ai didi

javascript - 为什么我的可选 Angular 色没有被捕获?

转载 作者:行者123 更新时间:2023-11-28 18:31:34 29 4
gpt4 key购买 nike

我正在尝试创建一个正则表达式来测试密码。我当前的检查检查以下内容:

  • 一个大写字母
  • 一个小写字母
  • 一个数字

目前,用户无法输入特殊字符,但我正在尝试将其添加为可选检查(因此Testing1 和Testing1! 应该都匹配)。我试过:

^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%*#?&])(A-Za- z\d[$@$!%*#?&]?){8,}$

但它没有捕获它。我感觉我的特殊字符集放错了地方,但我不确定该把它放在哪里。

在哪里添加特殊字符列表作为可选检查?

最佳答案

您可以通过多种方式设置正则表达式,例如为字符类型创建白名单或黑名单。这个特别为可以使用的字符创建了一个白名单,这似乎就是您正在寻找的内容。

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

正则表达式分割:

^ // Assert position at start of the line
(?=.*[A-Z]) // First positive lookahead, makes sure a capital character exists
(?=.*[a-z]) // Make sure a lowercase character exists
(?=.*[0-9]) // Make sure a number exists
[A-Za-z0-9$@$!%*#?&] // All of the possible characters that can be typed
{8,} // 8 to infinity characters
$ // Assert position at end of line

由于您说希望特殊字符作为可选字符,因此它们只是放置在可以键入的可能字符中,但不会通过任何正向前瞻进行验证。

查看此正则表达式在 regex101 上的实际应用。请记住,在此示例中,修饰符 gm 用于跨行验证,可能应该在您的用例中删除。

当然,您可能有使用“白名单”方法的理由,但一种更常见的方法(您可能想在某个时候尝试一下)是允许几乎所有内容(黑名单),然后验证某个标准是否符合遇见了。

关于javascript - 为什么我的可选 Angular 色没有被捕获?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37884937/

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