package test;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class zhengze {
/**
* @param args
*/
public static void main(String[] args) {
String str="```#$%^!!";
String regEx="[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]{6,8}$";
//①构造一个模式.
Pattern p=Pattern.compile(regEx);
Pattern pA=Pattern.compile("^[A-Z]{6,8}$");
Pattern pa=Pattern.compile("^[a-z]{6,8}$");
Pattern pNum=Pattern.compile("^[0-9]{6,8}$");
//②建造一个匹配器
Matcher m = p.matcher(str);
Matcher m1 = pA.matcher(str);
Matcher m2 = pa.matcher(str);
Matcher m3 = pNum.matcher(str);
//大小写字母,数字,特殊字符 全集匹配(只要字符串匹配其中任何一个或多个都可以)
String reg="([A-Z]|[a-z]|[0-9]|[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]){6,8}$";
Pattern pAll=Pattern.compile(reg);
Matcher mAll = pAll.matcher(str);
//③进行判断,得到结果
//因为字符串str如果匹配一个就不可能匹配其他的,具有互异性。还要排除都不匹配的情况,不满足这四项的字符
if(m.matches()||m1.matches()||m2.matches()||m3.matches()){
System.out.println("只满足一种情况不符合要求");
}else if(mAll.matches()){
System.out.println("符合6-8位的密码要求");
}else{
System.out.println("不符合要求");
}
}
}
或是用一个正则表达式
Pattern p = Pattern.compile("^(?![A-Z]*$)(?![a-z]*$)(?![0-9]*$)(?![^a-zA-Z0-9]*$)\\S{6,8}$");
js正则匹配:/^(?![A-Z]+$)(?![a-z]+$)(?!\d+$)(?![\W_]+$)\S{6,8}$/;
验证邮箱账号
String regAcount="^[a-zA-Z]*\\d+{0,20}$";
Pattern pAcount=Pattern.compile(regAcount);
Matcher mAcount = pAcount.matcher(acount);
String regemail="^[a-z0-9-]+(.[_a-z0-9-]+)*@([_a-z0-9-]+.)+([a-z]{2}|aero|arpa|biz|com|cn|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)$";
Pattern pemail=Pattern.compile(regemail);
Matcher memail = pemail.matcher(acount);
if(!(mAcount.matches()||memail.matches())){
errStr = "账号必须是数字、工号或邮箱";
return errStr;
}