Android正则表达式(手机与身份证)
手机好号正则表达式:
<span style="font-size:18px;">/*** 验证手机格式*/public static boolean isMobileNO(String mobiles) {/** 移动: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、(1349卫通)* 总结起来就是第一位必定为1,第二位必定为3或5或8,其他位置的可以为0-9*/String telRegex = "[1][358]\\d{9}";// "[1]"代表第1位为数字1,"[358]"代表第二位可以为3、5、8中的一个,"\\d{9}"代表后面是可以是0~9的数字,有9位。if (TextUtils.isEmpty(mobiles))return false;elsereturn mobiles.matches(telRegex);}</span>
身份证的正则表达式:
<span style="font-size:18px;">public class ShenFenUtils {public static boolean isShenFen(String phone){Pattern idNumPattern = Pattern.compile("(\\d{14}[0-9a-zA-Z])|(\\d{17}[0-9a-zA-Z])"); //通过Pattern获得Matcher Matcher idNumMatcher = idNumPattern.matcher(phone); //判断用户输入是否为身份证号 if(idNumMatcher.matches()){ System.out.println("您的出生年月日是:"); //如果是,定义正则表达式提取出身份证中的出生日期 Pattern birthDatePattern= Pattern.compile("\\d{6}(\\d{4})(\\d{2})(\\d{2}).*");//身份证上的前6位以及出生年月日 //通过Pattern获得Matcher Matcher birthDateMather= birthDatePattern.matcher(phone); //通过Matcher获得用户的出生年月日 if(birthDateMather.find()){ String year = birthDateMather.group(1); String month = birthDateMather.group(2); String date = birthDateMather.group(3); } return true;}else{return false;}}}</span>