网上找的东西好多都过时了,我把新的手机号段填上了,再用的时候就直接拿来用
import java.util.regex.Matcher; import java.util.regex.Pattern; public class IsEmail { public static void main(String[] args) { boolean a = isEmail("123@qq.com"); boolean b = isMobile("17728287239"); if (a) { System.out.println("email"); }else { System.out.println("not email"); } if (b) { System.out.println("phonenum"); }else { System.out.println("not phonenum"); } } /** * 判断邮箱是否合法 * @param email * @return */ public static boolean isEmail(String email){ if (null==email || "".equals(email)) return false; //Pattern p = Pattern.compile("\\w+@(\\w+.)+[a-z]{2,3}"); //简单匹配 Pattern p = Pattern.compile("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");//复杂匹配 Matcher m = p.matcher(email); return m.matches(); } /** * 判断手机号是否合法 * @param phone * @return */ public static boolean isMobile(String phone){ Pattern p = Pattern.compile("^((13[0-9])|(14[57])|(15[^4,\\D])|(17[0,6-8])|(18[0-9]))\\d{8}$"); Matcher m = p.matcher(phone); return m.matches(); } }
中国移动:134(不含1349)、135、136、137、138、139、147、150、151、152、157、158、159、182、183、184、187、188
中国联通:130、131、132、145(上网卡)、155、156、185、186
中国电信:133、1349(卫星通信)、153、180、181、189
4G号段:170:[1700/1701/1702(电信)、1705(移动)、1707/1708/1709(联通)]、176(联通)、177(电信)、178(移动)
未知号段:140、141、142、143、144、146、148、149、154
原文链接:https://www.f2er.com/regex/359618.html