我需要一个必须符合以下条件的正则表达式
条件1:Atleast 1大写字母
条件2:Atleast 1小写字母
条件3:至少1位数
条件4:特殊字符是可选的,但如果输入字符串中存在特殊字符,则它必须是以下字符::.;,?!/\_-()][#"'&$*%+=}{
以下程序满足条件1,条件2,条件3但不满足条件4
对于条件4,此正则表达式检查至少1个特殊字符,我希望此检查是可选的。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class PasswordValidation {
public static void main(String[] args) {
// TODO Auto-generated method stub
String loginpwd = "sssaQjs#d123";
String LOGIN_PASSWORD_VALIDATION = "(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[\\\\!\"#$%&()*+,./:;=?\\[\\]_{}])(?=\\S+$).{8,15}";
Pattern password_Pattern = Pattern.compile(LOGIN_PASSWORD_VALIDATION);
Matcher password_matcher = password_Pattern.matcher(loginpwd);
if(password_matcher.matches())
System.out.println("match");
else
System.out.println("doesnot match");
}
}
答案 0 :(得分:0)
$("#updateUserForm").on('submit', function (e) {
e.preventDefault();
});
答案 1 :(得分:-1)
将三个字符类添加到特殊字符的字符类中,就像在
中一样String LOGIN_PASSWORD_VALIDATION = "(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?!.*[^\\\\!\"#$%&()*+,./:;=?\\[\\]_{}A-Za-z0-9])\\S{8,15}";
它断言[\\\\!\"#$%&()*+,./:;=?\\[\\]_{}A-Za-z0-9]
类之外没有字符。注意前方的负面看法。
由于字符类包含字母和数字,因此它使特殊字符成为可选字符。