一些常见正则表达式(续)

前端之家收集整理的这篇文章主要介绍了一些常见正则表达式(续)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
1、验证手机号码
	(1)、移动:134、135、136、137、138、139、150、151、152、157、158、159、182、183、184、187、188、178(4G)、147(上网卡);
	    联通:130、131、132、155、156、185、186、176(4G)、145(上网卡);
	    电信:133、153、180、181、189 、177(4G);
	    卫星通信:1349;
	    虚拟运营商:170。	
	   所以正确的号码应该是开头应该是以13、14、15、17、18这些开头,然而其他开头的都不行;
	(2)、现在中国移动有一些特殊的开头,比如12593长话包,这些也是满足的;
	(3)、中国的区号+86;
	(4)、一些手机通讯录存号码的时候,自动加上-,比如:135-1235-6789。
	综上所述,可以得到下面的表达式;
	
private static boolean isMobile(String phone) {
		final String regex = "(\\+86|12593)?\\s?(1)(3|4|5|7|8){1}\\d{1}(-)?\\d{4}(-)?\\d{4}";
		Pattern pattern = Pattern.compile(regex);
		Matcher matcher = pattern.matcher(phone);
		return matcher.matches();
	}
说明:当phone以下格式的时候,返回true
13512345678、+8613512345678、+86 13512345678、+86135-1234-5678、+86 135-1234-5678
1259313512345678、12593 13512345678、12593135-1234-5678、12593 135-1234-5678
其他号码段以此类推,当然这种号码就不行了:16712345678

/**
	 * 判断email格式是否正确
	 * 
	 * @param email
	 * @return
	 */
	public static boolean isEmail(String email) {
		// String str =
		// "^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$";
		// Pattern p = Pattern.compile(str);
		if (TextUtils.isEmpty(email)) {
			return false;
		} else {
			email = email.trim();
		}
		final Pattern p = Pattern.compile("[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" + "\\@" + "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" + "(" + "\\."
				+ "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" + ")+");

		final Matcher m = p.matcher(email);
		return m.matches();
	}

猜你在找的正则表达式相关文章