我需要一个正则表达式来检查:

密码至少包含八个字符,包括至少一个数字,包括小写和大写字母以及特殊字符,例如#、?、!。

它不能是您的旧密码,也不能包含您的用户名、“密码”或“网站名称”

这是我的验证表达式,用于八个字符,包括一个大写字母、一个小写字母和一个数字或特殊字符。

(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$"

如果密码必须是八个字符,包括一个大写字母、一个特殊字符和字母数字字符,我怎么写?


当前回答

对@anubhava的回答只是一个小小的改进:由于特殊字符仅限于键盘中的字符,因此对任何特殊字符都使用此选项:

^(?=.*?[A-Z])(?=(.*[A-Z]){1,})(?(.*[\d]){1,})(?=(.*[\W]){0,}(?!.*\s)。{8,}$

此正则表达式将强制执行以下规则:

至少一个大写英文字母至少一个小写英文字母至少一个数字至少一个特殊字符长度至少为8

其他回答

使用此正则表达式,满足所有条件:

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

此正则表达式将强制执行以下规则:

至少一个大写字母(?=.*?[A-Z])至少一个小写字母(?=.*?[a-z])至少一个数字,(?=.*?[0-9])至少一个特殊字符,即前3个条件中不包含的任何字符,(?=.*?[^A-Za-z0-9])长度至少为8。{8,}

根据我的情况,我很难找到最流行的答案。例如,我的验证失败,出现以下字符:;或[。我对白色列出我的特殊字符不感兴趣,因此我使用[^\w\s]作为测试-简单地放-匹配非单词字符(包括数字)和非空格字符。总而言之,这是对我有用的。。。

至少8个字符至少1个数字字符至少1个小写字母至少1个大写字母至少1个特殊字符


/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s]).{8,}$/

JSFiddle链接-涵盖各种情况的简单演示

演示:

函数password_check(){pass=document.getElementById(“密码”).value;console.log(通过);正则表达式=/^(?=.*[a-z])(?=..*[a-z])((?=*.*\d)(?=.*[@$!%*?&])[a-Za-z\d@$!%*?&]{8,}$/;if(regex.exec(pass)==null){警报('有效密码!')}其他{console.log(“有效”);}}<input type=“text”id=“password”value=“Sample@1"><input type=“button”id=“submit”onclick=“password_check()”value=“submit“>

考虑以下正则表达式解决方案如何

^(?=.*[\w])(?=.*[\w]])[\w\w]{8,}$

这将验证以下内容:

至少有一个小写字母至少一个大写字母至少一个数字至少一个特殊字符至少应该有8个字符长。

在以下链接中查看其工作情况https://regex101.com/r/qPmC06/4/

@ClasG已经建议:

^(?=\S*[a-z])(?=\S*[A-Z])(?=\S*\d)(?=\S*[^\w\s])\S{8,}$

但它不接受_(下划线)作为特殊字符(例如Aa12345_)。

一个改进的方法是:

^(?=\S*[a-z])(?=\S*[A-Z])(?=\S*\d)(?=\S*([^\w\s]|[_]))\S{8,}$