zoukankan      html  css  js  c++  java
  • 用正则表达式写验证器

    package com.office.utility;
     
    import java.util.regex.Pattern;
     
    /**
     * 校验器:利用正则表达式校验用户名、密码、邮箱、手机号等
     * @author liujiduo
     */
    public class Validator {
        /**
         * 正则表达式:验证用户名
         */
        public static final String REGEX_USERNAME = "^[a-zA-Z]\w{5,17}$";
     
        /**
         * 正则表达式:验证密码
         */
        public static final String REGEX_PASSWORD = "^[a-zA-Z0-9]{6,16}$";
     
        /**
         * 正则表达式:验证手机号
         */
        public static final String REGEX_MOBILE = "^((13[0-9])|(15[^4,\D])|(18[0,5-9]))\d{8}$";
     
        /**
         * 正则表达式:验证邮箱
         */
        public static final String REGEX_EMAIL = "^([a-z0-9A-Z]+[-|\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\.)+[a-zA-Z]{2,}$";
     
        /**
         * 正则表达式:验证汉字
         */
        public static final String REGEX_CHINESE = "^[u4e00-u9fa5],{0,}$";
     
        /**
         * 正则表达式:验证身份证
         */
        public static final String REGEX_ID_CARD = "(^\d{18}$)|(^\d{15}$)";
     
        /**
         * 正则表达式:验证URL
         */
        public static final String REGEX_URL = "http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?";
     
        /**
         * 正则表达式:验证IP地址
         */
        public static final String REGEX_IP_ADDR = "(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)";
     
        /**
         * 校验用户名
         * 
         * @param username
         * @return 校验通过返回true,否则返回false
         */
        public static boolean isUsername(String username) {
            return Pattern.matches(REGEX_USERNAME, username);
        }
     
        /**
         * 校验密码
         * 
         * @param password
         * @return 校验通过返回true,否则返回false
         */
        public static boolean isPassword(String password) {
            return Pattern.matches(REGEX_PASSWORD, password);
        }
     
        /**
         * 校验手机号
         * 
         * @param mobile
         * @return 校验通过返回true,否则返回false
         */
        public static boolean isMobile(String mobile) {
            return Pattern.matches(REGEX_MOBILE, mobile);
        }
     
        /**
         * 校验邮箱
         * 
         * @param email
         * @return 校验通过返回true,否则返回false
         */
        public static boolean isEmail(String email) {
            return Pattern.matches(REGEX_EMAIL, email);
        }
     
        /**
         * 校验汉字
         * 
         * @param chinese
         * @return 校验通过返回true,否则返回false
         */
        public static boolean isChinese(String chinese) {
            return Pattern.matches(REGEX_CHINESE, chinese);
        }
     
        /**
         * 校验身份证
         * 
         * @param idCard
         * @return 校验通过返回true,否则返回false
         */
        public static boolean isIDCard(String idCard) {
            return Pattern.matches(REGEX_ID_CARD, idCard);
        }
     
        /**
         * 校验URL
         * 
         * @param url
         * @return 校验通过返回true,否则返回false
         */
        public static boolean isUrl(String url) {
            return Pattern.matches(REGEX_URL, url);
        }
     
        /**
         * 校验IP地址
         * 
         * @param ipAddr
         * @return
         */
        public static boolean isIPAddr(String ipAddr) {
            return Pattern.matches(REGEX_IP_ADDR, ipAddr);
        }
     
        public static void main(String[] args) {
            String username = "fdsdfsdj";
            System.out.println(Validator.isUsername(username));
            System.out.println(Validator.isChinese(username));
        }
    }

    补充:

    java.util.regex包主要由三部分构成:Pattern、Matcher和PatternSyntax- Exception。 
    1、Pattern对象是正则表达式编译后的表达形式。Pattern类没有提供公共构造器。为了创建模式,首先必须调用它的一个public static compile方法,这样会返回一个Pattern对象。这些方法接受正则表达式作为第一个实参;本章下面几页将讲解所需的语法。 
    2、Matcher对象是解释模式和对输入字符串执行匹配操作的引擎。和Pattern类一样,Matcher没有定义公共构造器。通过调用Pattern对象的matcher方法获得Matcher对象。 
    3、PatternSyntaxException对象是不可控异常,它指出正则表达式模式中的语法错误。 

    参考链接:https://383984216-qq-com.iteye.com/blog/1396595

           https://www.oschina.net/code/snippet_1021818_47946

  • 相关阅读:
    Hadoop-CDH源码编译
    HBase框架基础(四)
    HBase框架基础(三)
    Scala基础简述
    HBase框架基础(一)
    NOI2015 软件包管理器
    可持久化数据结构入门
    树链剖分 入门
    NOIP2009 最优贸易
    高斯消元 模板
  • 原文地址:https://www.cnblogs.com/vision-xixi/p/10659096.html
Copyright © 2011-2022 走看看