首页 > 解决方案 > 自定义密码要求的正则表达式

问题描述

我试图根据密码要求创建一个正则表达式。要求是

我创建了这个正则表达式

/^[0-9a-zA-Z\s!"#$\%&'\(\)\*\+\,\-\.\/\:;<=>?@\[\\\]\^\_\`\{\|\}\~]+$/g

我对正则表达式的了解不多,所以只需要确认它是正确的正则表达式还是需要更改。

标签: javascriptregexpasswordssalesforce

解决方案


这个怎么样:

^(?=.{8,})(?=.*?\d)(?=.*[\s!\"#$\%&'\(\)\*\+\,\-\.\/\:;<=>?@\[\\\]\^\_\`\{\|\}\~])(?=[a-zA-Z0-9].*?[a-zA-Z0-9].*?[a-zA-Z0-9].*?).*$

正如在 regex101.com 上看到的那样

解释:

我使用了很多积极的前瞻,你可以在这里阅读更多

基本上,前瞻确保某个位置前面有一些字符。在检查密码的开头是否符合您的所有条件后,我们将匹配密码。
可以这样想:确保一切正确,如果正确,则匹配密码。否则你不会。

(?=.{8,})检查是否至少有 8 个字符
(?=.*?\d)检查是否至少有 1 个数字
^(?=.{8,})(?=.*?\d)(?=.*[\s!\"#$\%&'\(\)\*\+\,\-\.\/\:;<=>?@\[\\\]\^\_\`\{\|\}\~])检查是否至少有 3 个字母和/或数字


推荐阅读