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

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

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

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

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

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


当前回答

演示:

函数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“>

其他回答

导入JavaScript文件jquery.validate.min.js。

您可以使用此方法:

$.validator.addMethod("pwcheck", function (value) {
    return /[\@\#\$\%\^\&\*\(\)\_\+\!]/.test(value) && /[a-z]/.test(value) && /[0-9]/.test(value) && /[A-Z]/.test(value)
});

至少一个大写英文字母至少一个小写英文字母至少一个数字至少一个特殊字符

实际上,我刚刚在这里复制了第一个答案,并将其转换为一个更方便的正则表达式,它需要一个大写、一个小写和至少8个字符,但接受“中间”的所有内容。

这是一个正则表达式示例,需要

长度至少为8个字符至少一个小写字母至少一个大写字母

重要提示:此正则表达式还将排除所有其他字符,例如数字、特殊字符,如$、#、,!等等-只要规则1。至3。匹配输入字符串

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

注意正则表达式末尾的“.”符号。这将匹配几乎任何字符(以及任何可读字符)

^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[!@#$%^&*()_+,.\\\/;':"-]).{8,}$
    

您可以使用下面的正则表达式模式检查密码是否符合您的期望。

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

根据您的需要,这种模式应该可以正常工作。试试这个,

^(?=(.*\d){1})(.*\S)(?=.*[a-zA-Z\S])[0-9a-zA-Z\S]{8,}

只需创建一个字符串变量,分配模式,并创建一个布尔方法,如果模式正确,则返回true,否则返回false。

示例:

String pattern = "^(?=(.*\d){1})(.*\S)(?=.*[a-zA-Z\S])[0-9a-zA-Z\S]{8,}";
String password_string = "Type the password here"

private boolean isValidPassword(String password_string) {
    return password_string.matches(Constants.passwordPattern);
}