前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >android 校验用户名密码手机邮箱身份证邮编等

android 校验用户名密码手机邮箱身份证邮编等

作者头像
再见孙悟空_
发布2023-02-10 19:53:05
4170
发布2023-02-10 19:53:05
举报
代码语言:javascript
复制
package com.farmlink.most.util;


import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


import android.net.ParseException;
import android.text.TextUtils;


/**
 * 参数校验
 */
public class ValidateParam {


	/**
	 * 校验用户名判断:头部尾部不能使空格,不能是中文,不能使全角,不能有星号,长度6-16 其实 中文 和 全角 的 new
	 * String(charStr.getBytes("UTF-8"),"8859_1").getBytes().length=6
	 * 字母、数字、特殊符号new
	 * String(charStr.getBytes("UTF-8"),"8859_1").getBytes().length=1
	 */
	public static boolean validateUserName(String username) {
		/**
		 * 长度6-16
		 */
		if (!((username.length() >= 6) && (username.length() <= 16))) {
			return false;
		}
		/**
		 * 头部不能有空格
		 */
		if (username.substring(0, 1).equals(" ")) {// 头部有空格
			System.out.println(33);
			return false;
		}
		/**
		 * 未部不能有空格
		 */
		if (username.endsWith(" ")) {// 未部有空格
			return false;
		}
		if (username.contains(" ")) {// 不能含有
			return false;
		}
		/**
		 * 不能有中文
		 */
		Pattern pattern1 = Pattern.compile("[^\\u4E00-\\u9FA5]*"); // 不是中文
		Matcher m1 = pattern1.matcher(username);
		if (!m1.matches()) {
			return false;
		}
		/**
		 * 不能有*号
		 */
		pattern1 = Pattern.compile("[^\\*]*"); // 不是*号
		m1 = pattern1.matcher(username);
		if (!m1.matches()) {
			return false;
		}


		/**
		 * 不能是纯数字
		 */
		pattern1 = Pattern.compile("^[1-9]\\d*$");
		m1 = pattern1.matcher(username);
		return !m1.matches();
	}


	/**
	 * 校验用户密码:字母,数字,特殊字符,至少两种,6-16个字符
	 */
	public static boolean validateUserPassword(String passport) {
		Pattern pattern1 = Pattern.compile("[0-9]*"); // 数字[0-9]+?
		Matcher m1 = pattern1.matcher(passport);
		pattern1 = Pattern.compile(".*[a-zA-Z].*"); // 字母
		Matcher m2 = pattern1.matcher(passport);
		pattern1 = Pattern.compile(".*[^a-zA-Z0-9].*"); // 非字母和数字
		Matcher m3 = pattern1.matcher(passport);
		pattern1 = Pattern.compile("[^\\u4E00-\\u9FA5]*"); // 不是中文
		Matcher m4 = pattern1.matcher(passport);
		// 长度6-16
		if (!((passport.length() >= 6) && (passport.length() <= 16))) {
			return true;
		}
		/**
		 * 纯数字
		 */
		if (m1.matches()) {
			return true;
		}
		/**
		 * 必须是:字母和数字
		 **/
		if (m1.matches() && m2.matches() && m4.matches()) {
			return true;
		}
		/**
		 * 必须是:数字和特殊符号
		 **/
		if (m1.matches() && m3.matches() && m4.matches()) {
			return true;
		}
		/**
		 * 必须是:字母和特殊符号
		 **/
		return m2.matches() && m3.matches() && m4.matches();
	}


	public static int validateUserPasswords(String passport) {
		passport = new String(passport.getBytes());
		java.util.regex.Pattern pattern2 = java.util.regex.Pattern.compile("[\u4e00-\u9fa5]+");
		java.util.regex.Matcher match2 = pattern2.matcher(passport);
		if (match2.find() == true) {
			return 1;
		}


		java.util.regex.Pattern pattern3 = java.util.regex.Pattern.compile("[\\s\u4e00-\u9fa5]");
		java.util.regex.Matcher match3 = pattern3.matcher(passport);
		if (match3.find() == true) {
			return 2;
		}


		java.util.regex.Pattern pattern4 = java.util.regex.Pattern.compile("\\*");
		java.util.regex.Matcher match4 = pattern4.matcher(passport);
		if (match4.find()) {
			return 3;
		}


		return 0;
	}


	/**
	 * 校验手机
	 */
	public static boolean validatePhone(String phone) {
		Pattern pattern1 = Pattern.compile("^1[34578]\\d{9}$");
		Matcher m1 = pattern1.matcher(phone);
		return m1.matches();
	}


	/**
	 * 校验邮箱
	 */
	public static boolean validateEmail(String email) {
		Pattern pattern = Pattern.compile(
				"^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$");
		Matcher matcher = pattern.matcher(email);
		return matcher.matches();
	}
	
	
	/** 
     * 判断字段是否为身份证 符合返回ture 
     * @param str 
     * @return boolean 
     */
    public static  boolean isIdCard(String str) {  
        /** 
         * 身份证正则表达式 
         */
       String IDCARD="((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})" +  
                                            "(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}" +  
                                            "[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))";
        if(TextUtils.isEmpty(str)) return false ;  
        if(str.trim().length() == 15 || str.trim().length() == 18) {  
                return Regular(str,IDCARD);  
        }else {  
            return false ;  
        }  
    }  
    
    /** 
     * 判断字段是否为邮编 符合返回ture 
     * @param str 
     * @return boolean 
     */
    public static  boolean isCode(String str) {  
        /** 
         * 邮编正则表达式  [0-9]\d{5}(?!\d) 国内6位邮编 
         */
    	String CODE="[0-9]\\d{5}(?!\\d)";    
        return Regular(str,CODE) ;  
    }  
    
    /** 
     * 匹配是否符合正则表达式pattern 匹配返回true 
     * @param str 匹配的字符串 
     * @param pattern 匹配模式 
     * @return boolean 
     */
    private static  boolean Regular(String str,String pattern){  
        if(null == str || str.trim().length()<=0)  
            return false;           
        Pattern p = Pattern.compile(pattern);  
        Matcher m = p.matcher(str);  
        return m.matches();  
    }  
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-08-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档