美文网首页
常用正则校验

常用正则校验

作者: BySjm | 来源:发表于2020-06-09 09:58 被阅读0次
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    /**
     * @description: 正则表达式验证
     **/
    public class RegExpValidatorUtils {
        /**
         * @param regex 正则表达式字符串
         * @param str   要匹配的字符串
         * @return 如果str 符合 regex的正则表达式格式,返回true, 否则返回 false;
         */
        private static boolean match(String regex, String str) {
            Pattern pattern = Pattern.compile(regex);
            Matcher matcher = pattern.matcher(str);
            return matcher.matches();
        }
    
        /**
         * 验证是否为数字
         *
         * @param str
         * @return 如果是符合格式的字符串, 返回 <b>true </b>,否则为 <b>false </b>
         */
        public static boolean isNumber(String str) {
            String regex = "^[1-9]+[0-9]*$";
            return match(regex, str);
        }
    
        /**
         * 验证电话
         *
         * @param str
         * @return 如果是符合格式的字符串, 返回 <b>true </b>,否则为 <b>false </b>
         */
        public static boolean isTelephone(String str) {
            String regex = "^(\\d{3,4}-)?\\d{6,8}$";
            return match(regex, str);
        }
    
        /**
         * 验证日期时间
         *
         * @param str
         * @return 严格验证时间格式的, 返回 <b>true </b>,否则为 <b>false </b>
         */
        public static boolean isDate(String str) {
            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)))))$";
            return match(regex, str);
        }
    
        /**
         * 验证邮箱
         *
         * @param str
         * @return 如果是符合的字符串, 返回<b>true </b>,否则为<b>false </b>
         */
        public static boolean isEmail(String str) {
            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 如果是符合格式的字符串, 返回 <b>true </b>,否则为 <b>false </b>
         */
        public static boolean isIDcard(String str) {
            String regex = "(^\\d{18}$)|(^\\d{15}$)";
            return match(regex, str);
        }
    
        /**
         * 验证0-100 数字
         *
         * @param str
         * @return 如果是符合格式的数字, 返回 <b>true </b>,否则为 <b>false </b>
         */
        public static boolean isNumberOnHundred(String str) {
            String regex = "^(1|([1-9]\\d{0,1})|100)$";
            return match(regex, str);
        }
    
        /**
         * 验证金额,做多小数点两位
         *
         * @param str
         * @return 如果是符合格式的金额, 返回 <b>true </b>,否则为 <b>false </b>
         */
        public static boolean isMoney(String str) {
            String regex = "\\d+(\\.\\d{1,2})?";
            return match(regex, str);
        }
    }
    
    

    相关文章

      网友评论

          本文标题:常用正则校验

          本文链接:https://www.haomeiwen.com/subject/dctstktx.html