先大概说说手机号码和身份证的组成:(中国大陆)
手机号码开头:
[size=medium][color=olive]移动: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[/color][/size]
身份证:
[size=medium][color=olive]a.旧身份证:15位数字
b.新身份证:18位数字或者17位数字+X[/color][/size]
代码:
手机号码开头:
[size=medium][color=olive]移动: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[/color][/size]
身份证:
[size=medium][color=olive]a.旧身份证:15位数字
b.新身份证:18位数字或者17位数字+X[/color][/size]
代码:
//验证手机号码
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();
}