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

简介: android 校验用户名密码手机邮箱身份证邮编等
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();  
    }  
}


相关文章
|
24天前
|
缓存 前端开发 IDE
【06】flutter完成注册页面-密码登录-手机短信验证-找回密码相关页面-并且实现静态跳转打包demo做演示-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【06】flutter完成注册页面-密码登录-手机短信验证-找回密码相关页面-并且实现静态跳转打包demo做演示-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
26 0
【06】flutter完成注册页面-密码登录-手机短信验证-找回密码相关页面-并且实现静态跳转打包demo做演示-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
6月前
|
JavaScript NoSQL Redis
Vue中实现修改邮箱、手机号等流程的大致过程、验证码由后端的redis生成验证(版本1.0)
这篇文章记录了在Vue中实现修改手机号和邮箱的大致流程,包括使用过滤器部分隐藏展示的手机号和邮箱,以及通过点击触发路由跳转的便捷方式。文章还描述了旧号码和新号码验证的界面实现,其中验证码由后端生成并通过弹窗展示给用户,未来可以接入真正的手机验证码接口。此外,还提供了修改邮箱的页面效果截图,并强调了学习是一个永无止境的过程。
Vue中实现修改邮箱、手机号等流程的大致过程、验证码由后端的redis生成验证(版本1.0)
|
6月前
|
JavaScript 数据安全/隐私保护
Vue中如何使用过滤器来隐藏手机号、邮箱等字符串的中间部分内容
这篇文章介绍了在Vue中如何使用过滤器来隐藏手机号和邮箱等字符串的中间部分内容,以提高隐私保护。文章展示了实现效果,并提供了实现过程的代码示例,包括HTML部分的绑定、data部分的数据定义和script部分的过滤器定义。文章还解释了过滤器的概念、语法和使用方式,并提供了一个外部链接供读者获取更加详细的过滤器知识。
|
7月前
|
JavaScript 前端开发 数据安全/隐私保护
vue 前端 邮箱、密码、手机号码等输入验证规则
vue 前端 邮箱、密码、手机号码等输入验证规则
447 0
|
9月前
|
存储 数据安全/隐私保护
苹果手机如何设置邮箱
苹果手机如何设置邮箱
158 0
|
8月前
|
网络协议 Android开发 数据安全/隐私保护
Android手机上使用Socks5全局代理-教程+软件
Android手机上使用Socks5全局代理-教程+软件
5495 2
|
9月前
|
监控 安全 Android开发
【新手必读】Airtest测试Android手机常见的设置问题
【新手必读】Airtest测试Android手机常见的设置问题
267 0
|
9月前
|
XML Java Android开发
Android Studio开发之使用内容组件Content获取通讯信息讲解及实战(附源码 包括添加手机联系人和发短信)
Android Studio开发之使用内容组件Content获取通讯信息讲解及实战(附源码 包括添加手机联系人和发短信)
529 0
|
9月前
|
Web App开发 前端开发 网络安全
前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
【2月更文挑战第21天】前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
130 1
前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
|
9月前
|
存储 数据库 Android开发
Android实现手机内存存储功能
Android实现手机内存存储功能
83 2

热门文章

最新文章

  • 1
    MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
  • 2
    OmAgent:轻松构建在终端设备上运行的 AI 应用,赋能手机、穿戴设备、摄像头等多种设备
  • 3
    美团面试:手机扫描PC二维码登录,底层原理和完整流程是什么?
  • 4
    ClKLog支持手机端查询统计数据啦!
  • 5
    陪玩APP推送配置:陪玩系统手机锁屏收不到推送?可能是这些原因!解决方案来了!
  • 6
    【06】flutter完成注册页面-密码登录-手机短信验证-找回密码相关页面-并且实现静态跳转打包demo做演示-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
  • 7
    如何修复 Android 和 Windows 不支持视频编解码器的问题?
  • 8
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 9
    当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
  • 10
    【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程