后台常用正则表达式

编程技术  /  houtizong 发布于 3年前   93
/** *  * @author  : bless<[email protected]> * @version : 1.00 * Create Time : 2011-2-22-下午04:31:36 * Description :  *             内容校验类 */public class ValidateUtil implements Serializable{private static final long serialVersionUID = 1L;/** * 默认编码格式 */private static final String DEFAULT_ENCODING = "UTF-8";/** * Function  : 检查字符串的格式 * @author   : bless<[email protected]> * @param str           :  被检查的字符串 * @param hasCN         :  允许有中文 * @param hasNum        : 允许有数字 * @param hasLetter     : 允许有字母 * @param specialChars  :  允许有特殊字符,输入方式:假设允许下划线则参数为,"_"  假如允许下划线和问号则参数为,"_","?" * example : 字母、数字、问号、句号和感叹号组成的字符串:isRealChar("xxxx",false,true,true,"?","。","!") * @return   匹配则返回true,不匹配返回false */public static boolean isRealChar(String str,boolean hasCN,boolean hasNum,boolean hasLetter,String... specialChars){String regex_start = "^[";String regex_end = "]+$";if(hasCN == true){regex_start = regex_start + "|\u4e00-\u9fa5";}else if(hasNum == true){regex_start = regex_start + "|0-9";}else if(hasLetter == true){regex_start = regex_start + "|a-zA-Z";}if(specialChars != null){    for(int i = 0;i<specialChars.length;i++){    regex_start = regex_start +"|"+specialChars[i];    }    }return match(regex_start+regex_end,str);}/** * @param str * @return * author  : bless<[email protected]> * about version :1.00 * create time   : 2011-2-22-下午04:37:22 * Description : 验证邮箱的有效性 *         成功匹配则返回true *         不匹配则返回false            */    public static boolean isEmail(String str)     {    //return str.matches("[\\w\\.\\-]+@([\\w\\-]+\\.)+[\\w\\-]+") ;        String regex = "^([\\w-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([\\w-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$";         return match(regex, str);     }     /**     * @param str     * @return     * author  : bless<[email protected]>     * about version :1.00     * create time   : 2011-2-22-下午04:38:38     * Description :验证IP地址     *         匹配返回true     *         不匹配返回false     */    public static boolean isIP(String str)     {         String num = "(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)";         String regex = "^" + num + "\\." + num + "\\." + num + "\\." + num + "$";         return match(regex, str);     }     /**     *       * @param str     * @return     * author  : bless<[email protected]>     * about version :1.00     * create time   : 2011-2-22-下午04:47:59     * Description : 校验网址(规则:以http://或https://开头)     *         匹配则返回true     *         不匹配则返回false     */    public static boolean isUrl(String str)    {         String regex = "http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?";         return match(regex, str);     }     /**     * @param str     * @return     * author  : bless<[email protected]>     * about version :1.00     * create time   : 2011-2-22-下午04:49:46     * Description :验证是否是固定电话(规则:xxxx(区号,3或4位)-(连接线,必备)xxxxxx(电话,6到8位),如028-83035137)     *         匹配则返回true     *         不匹配则返回false                   */    public static boolean isTelephone(String str)     {         String regex = "^(\\d{3,4}-)?\\d{6,8}$";         return match(regex, str);     }     /**     * @param value     * @return     * author  : bless<[email protected]>     * about version :1.00     * create time   : 2011-2-22-下午04:51:00     * Description : 验证是否是手机号(规则:以1开头,接任意数字,11位)     *         匹配则返回true     *         不匹配则返回false     */    public static boolean isMobilePhone(String value)    {    //String regex = "^[1]+[3,5]+\\d{9}$";     String regex = "^[1]+\\d{10}";     return value.matches(regex);    }         /**     * @param str     * @return     * author  : bless<[email protected]>     * about version :1.00     * create time   : 2011-2-22-下午05:01:02     * Description :邮编地址     *         匹配则返回true     *         不匹配则返回false     */    public static boolean isPostalcode(String str)     {         String regex = "^\\d{6}$";         return match(regex, str);     }     /**     * @param str     * @return     * author  : bless<[email protected]>     * about version :1.00     * create time   : 2011-2-22-下午05:03:46     * Description :验证15位或18位身份证号     *         匹配则返回true     *         不匹配则返回false     */    public static boolean isIDcard(String str)     {         String regex = "(^\\d{18}$)|(^\\d{15}$)";         return match(regex, str);     }     /**     * @param str     被验证数据     * @param digit   验证长度:小数点后几位     * @return     * author  : bless<[email protected]>     * about version :1.00     * create time   : 2011-2-22-下午05:12:03     * Description : 验证是否符合指定位数的小数     *         匹配则返回true     *         不匹配则返回false     */    public static boolean isDecimal(String str,int digit)     {         String regex = "^[0-9]+(.[0-9]{"+digit+"})?$";         return match(regex, str);     }         /**      * @param str     * @return     * author  : bless<[email protected]>     * about version :1.00     * create time   : 2011-2-22-下午05:18:49     * Description :验证是否是1~12月     *         匹配则返回true     *         不匹配则返回false     */    public static boolean isMonth(String str)     {         String regex = "^(0?[1-9]|1[0-2])$";         return match(regex, str);     }     /**     * @param str     * @return     * author  : bless<[email protected]>     * about version :1.00     * create time   : 2011-2-22-下午05:22:57     * Description : 校验日期格式(格式:xxxx-xx-xx,并且考虑闰月、大小月的情况)     *        匹配则返回true     *        不匹配则返回false     */    public static boolean isDate(String str)     {         //严格验证时间格式的(匹配[2002-01-31], [1997-04-30], [2004-01-01])不匹配([2002-01-32], [2003-02-29], [04-01-01])     String regex = "^((((19|20)(([02468][048])|([13579][26]))-02-29))|((20[0-9][0-9])|(19[0-9][0-9]))-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((01,3-9])|(1[0-2]))-(29|30)))))$";         //没加时间验证的YYYY-MM-DD //      String regex = "^((((1[6-9]|[2-9]\\d)\\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\\d|3[01]))|(((1[6-9]|[2-9]\\d)\\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\\d|30))|(((1[6-9]|[2-9]\\d)\\d{2})-0?2-(0?[1-9]|1\\d|2[0-8]))|(((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$";         //加了时间验证的YYYY-MM-DD 00:00:00 //      String regex = "^((((1[6-9]|[2-9]\\d)\\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\\d|3[01]))|(((1[6-9]|[2-9]\\d)\\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\\d|30))|(((1[6-9]|[2-9]\\d)\\d{2})-0?2-(0?[1-9]|1\\d|2[0-8]))|(((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\\d):[0-5]?\\d:[0-5]?\\d$";         return match(regex, str);     }             /**     * @param str     * @param sign  : 三种"+","-","all",分别表示正数、负数、正负都行     * @return     * author  : bless<[email protected]>     * about version :1.00     * create time   : 2011-2-22-下午05:31:02     * Description :校验指定类型的数字     *         匹配则返回true     *         不匹配则返回false     */    public static boolean isNumber(String str,String sign)     {    String regex = "";    if("+".equals(sign)){    regex = "^[+]?[0-9]*$";    }else if("-".equals(sign)){    regex = "^[-][0-9]*$";    }else{    regex = "^[+-]?[0-9]*$";    }        return match(regex, str);    }     /**     * @param str     * @return     * author  : bless<[email protected]>     * about version :1.00     * create time   : 2011-2-22-下午05:36:04     * Description :验证非0正整数     *         匹配则返回true     *         不匹配则返回false     */    public static boolean isIntNumber(String str)    {         String regex = "^\\+?[1-9][0-9]*$";         return match(regex, str);     }     /**     * @param str     * @return     * author  : bless<[email protected]>     * about version :1.00     * create time   : 2011-2-22-下午05:38:38     * Description :验证大写字母     *         匹配则返回true     *         不匹配则返回false     */    public static boolean isUpChar(String str)     {         String regex = "^[A-Z]+$";         return match(regex, str);     }     /**     * @param str     * @return     * author  : bless<[email protected]>     * about version :1.00     * create time   : 2011-2-22-下午05:39:14     * Description : 验证小写字母     *         匹配则返回true     *         不匹配则返回false     */    public static boolean isLowChar(String str)     {         String regex = "^[a-z]+$";         return match(regex, str);     }     /**     * @param str     * @return     * author  : bless<[email protected]>     * about version :1.00     * create time   : 2011-2-22-下午05:39:57     * Description :验证输入的是字母     *         匹配则返回true     *         不匹配则返回false     */    public static boolean isLetter(String str)     {         String regex = "^[A-Za-z]+$";         return match(regex, str);     }     /**     * @param str     * @param encoding : 编码格式,如GBK,   不输入默认为UTF-8     * @return :返回指定编码格式下字符串的长度     * author  : bless<[email protected]>     * about version :1.00     * create time   : 2011-2-22-下午05:54:16     * Description :选择不同编码,返回字符串长度     */    public static int checkLength(String str,String encoding) {        int length;        try {        if(encoding == null||"".equals(encoding)){        length = str.getBytes(DEFAULT_ENCODING).length;        }else{        length = str.getBytes(encoding).length;        }        } catch (UnsupportedEncodingException e) {            length = str.getBytes().length;        }        return length;    }            /**     * @param regex     * @param str     * @return     * author  : bless<[email protected]>     * about version :1.00     * create time   : 2011-2-22-下午04:41:57     * Description : 正则表达式验证方法     *         匹配表达式则返回true     *         不匹配则返回false     */    private static boolean match(String regex, String str)    {         Pattern pattern = Pattern.compile(regex);         Matcher matcher = pattern.matcher(str);         return matcher.matches();     }}

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客