java 正则验证手机号码和身份证

先大概说说手机号码和身份证的组成:(中国大陆)
手机号码开头:
移动:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188

联通:130、131、132、152、155、156、185、186

电信:133、153、180、189


身份证:
a.旧身份证:15位数字

b.新身份证:18位数字或者17位数字+X



代码:
	
	//验证手机号码
	private boolean phoneNumber(String number)
	{
		String rgx = "^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$";
		
		return isCorrect(rgx, number);
	}
	
	//验证身份证号码
	private boolean idCardNumber(String number)
	{
		String rgx = "^\\d{15}|^\\d{17}([0-9]|X|x)$";
		
		return isCorrect(rgx, number);
	}
	
	//正则验证
	public static boolean isCorrect(String rgx, String res)
	{
		Pattern p = Pattern.compile(rgx);
		
		Matcher m = p.matcher(res);
		
		return m.matches();
	}

你可能感兴趣的:(java,正则表达式,身份证,手机号码)