RegexUtils(常用验证方法)


import java.util.Collection;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.apache.commons.lang.StringUtils;

public class RegexUtils {
    public static void main(String[] args) {
        // System.out.println("过滤中英文特殊字符: "+RegexUtil.stringFilter("中国~~!#$%%."));
        // System.out.println("是否包含中英文特殊字符: "+RegexUtil.isContainsSpecialChar("12"));
        // System.out.println("过滤html代码: "+RegexUtil.htmltoText("<JAVASCRIPT>12</JAVASCRIPT>DDDDD"));
        // System.out.println("判断中文字符: "+RegexUtil.isChineseChar("中国!"));
        //System.out.println("匹配汉字: " + RegexUtils.isChinese("中国!"));
        // System.out.println("判断英文字符: "+RegexUtil.isEnglish("abc!"));
        // System.out.println("判断合法字符: "+RegexUtil.isRightfulString("abc_-11AAA"));
        // System.out.println("邮政编码验证: "+RegexUtil.isZipCode("162406"));
        // System.out.println("身份证号码验证: "+RegexUtil.isIdCardNo("35052419880210133e"));
        // System.out.println("手机号码验证: "+RegexUtil.isMobile("18918611111"));
        // System.out.println("电话号码验证: "+RegexUtil.isPhone("8889333"));
        // System.out.println("电话号码验证: "+RegexUtil.isNumeric("888.9333"));
        // System.out.println("匹配密码: "+RegexUtil.isPwd("d888d_ddddd"));
        // System.out.println("匹配密码: "+RegexUtil.isUrl("http://baidu.com"));
        //System.out.println("验证字符: " + RegexUtils.stringCheck("中文aabc001_-"));
        // System.out.println(isEmail("416501600@qq.com"));
        // http://baidu.com www.baidu.com baidu.com
        // System.out.println(NumberUtils.toInt("-0000000002"));
    }

    public final static boolean isNull(Object[] objs) {
        if (objs == null || objs.length == 0)
            return true;
        return false;
    }

    public final static boolean isNull(Integer integer) {
        if (integer == null || integer == 0)
            return true;
        return false;
    }

    public final static boolean isNull(Collection collection) {
        if (collection == null || collection.size() == 0)
            return true;
        return false;
    }

    public final static boolean isNull(Map map) {
        if (map == null || map.size() == 0)
            return true;
        return false;
    }

    public final static boolean isNull(String str) {
        return str == null || "".equals(str.trim())
                || "null".equals(str.toLowerCase());
    }

    public final static boolean isNull(Long longs) {
        if (longs == null || longs == 0)
            return true;
        return false;
    }

    public final static boolean isNotNull(Long longs) {
        return !isNull(longs);
    }

    public final static boolean isNotNull(String str) {
        return !isNull(str);
    }

    public final static boolean isNotNull(Collection collection) {
        return !isNull(collection);
    }

    public final static boolean isNotNull(Map map) {
        return !isNull(map);
    }

    public final static boolean isNotNull(Integer integer) {
        return !isNull(integer);
    }

    public final static boolean isNotNull(Object[] objs) {
        return !isNull(objs);
    }

    /**
     * 匹配URL地址
     *
     * @param str
     * @return
     * @author jiqinlin
     */
    public final static boolean isUrl(String str) {
        return match(str, "^http://([\\w-]+\\.)+[\\w-]+(/[\\w-./?%&=]*)?$");
    }

    /**
     * 匹配密码,以字母开头,长度在6-12之间,只能包含字符、数字和下划线。
     *
     * @param str
     * @return
     * @author jiqinlin
     */
    public final static boolean isPwd(String str) {
        return match(str, "^[a-zA-Z]\\w{6,12}$");
    }

    /**
     * 验证字符,只能包含中文、英文、数字、下划线等字符。
     *
     * @param str
     * @return
     * @author jiqinlin
     */
    public final static boolean stringCheck(String str) {
        return match(str, "^[a-zA-Z0-9\u4e00-\u9fa5-_]+$");
    }

    /**
     * 匹配Email地址
     *
     * @param str
     * @return
     * @author jiqinlin
     */
    public final static boolean isEmail(String str) {
        return match(str,
                "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$");
    }

    /**
     * 匹配非负整数(正整数+0)
     *
     * @param str
     * @return
     * @author jiqinlin
     */
    public final static boolean isInteger(String str) {
        return match(str, "^[+]?\\d+$");
    }

    /**
     * 判断数值类型,包括整数和浮点数
     *
     * @param str
     * @return
     * @author jiqinlin
     */
    public final static boolean isNumeric(String str) {
        if (isFloat(str) || isInteger(str))
            return true;
        return false;
    }

    /**
     * 只能输入数字
     *
     * @param str
     * @return
     * @author jiqinlin
     */
    public final static boolean isDigits(String str) {
        return match(str, "^[0-9]*$");
    }

    /**
     * 匹配正浮点数
     *
     * @param str
     * @return
     * @author jiqinlin
     */
    public final static boolean isFloat(String str) {
        return match(str, "^[-\\+]?\\d+(\\.\\d+)?$");
    }

    /**
     * 联系电话(手机/电话皆可)验证
     *
     * @param text
     * @return
     * @author jiqinlin
     */
    public final static boolean isTel(String text) {
        if (isMobile(text) || isPhone(text))
            return true;
        return false;
    }

    /**
     * 电话号码验证
     *
     * @param text
     * @return
     * @author jiqinlin
     */
    public final static boolean isPhone(String text) {
        return match(text, "^(\\d{3,4}-?)?\\d{7,9}$");
    }

    /**
     * 手机号码验证
     *
     * @param text
     * @return
     * @author jiqinlin
     */
    public final static boolean isMobile(String text) {
        if (text.length() != 11)
            return false;
        return match(text,
                "^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\\d{8})$");
    }

    /**
     * 身份证号码验证
     *
     * @param text
     * @return
     * @author jiqinlin
     */
    public final static boolean isIdCardNo(String text) {
        return match(text, "^(\\d{6})()?(\\d{4})(\\d{2})(\\d{2})(\\d{3})(\\w)$");
    }

    /**
     * 邮政编码验证
     *
     * @param text
     * @return
     * @author jiqinlin
     */
    public final static boolean isZipCode(String text) {
        return match(text, "^[0-9]{6}$");
    }

    /**
     * 判断整数num是否等于0
     *
     * @param num
     * @return
     * @author jiqinlin
     */
    public final static boolean isIntEqZero(int num) {
        return num == 0;
    }

    /**
     * 判断整数num是否大于0
     *
     * @param num
     * @return
     * @author jiqinlin
     */
    public final static boolean isIntGtZero(int num) {
        return num > 0;
    }

    /**
     * 判断整数num是否大于或等于0
     *
     * @param num
     * @return
     * @author jiqinlin
     */
    public final static boolean isIntGteZero(int num) {
        return num >= 0;
    }

    /**
     * 判断浮点数num是否等于0
     *
     * @param num
     *            浮点数
     * @return
     * @author jiqinlin
     */
    public final static boolean isFloatEqZero(float num) {
        return num == 0f;
    }

    /**
     * 判断浮点数num是否大于0
     *
     * @param num
     *            浮点数
     * @return
     * @author jiqinlin
     */
    public final static boolean isFloatGtZero(float num) {
        return num > 0f;
    }

    /**
     * 判断浮点数num是否大于或等于0
     *
     * @param num
     *            浮点数
     * @return
     * @author jiqinlin
     */
    public final static boolean isFloatGteZero(float num) {
        return num >= 0f;
    }

    /**
     * 判断是否为合法字符(a-zA-Z0-9-_)
     *
     * @param text
     * @return
     * @author jiqinlin
     */
    public final static boolean isRightfulString(String text) {
        return match(text, "^[A-Za-z0-9_-]+$");
    }

    /**
     * 判断英文字符(a-zA-Z)
     *
     * @param text
     * @return
     * @author jiqinlin
     */
    public final static boolean isEnglish(String text) {
        return match(text, "^[A-Za-z]+$");
    }

    /**
     * 判断中文字符(包括汉字和符号)
     *
     * @param text
     * @return
     * @author jiqinlin
     */
    public final static boolean isChineseChar(String text) {
        return match(text, "^[\u0391-\uFFE5]+$");
    }

    /**
     * 匹配汉字
     *
     * @param text
     * @return
     * @author jiqinlin
     */
    public final static boolean isChinese(String text) {
        return match(text, "^[\u4e00-\u9fa5]+$");
    }

    /**
     * 是否包含中英文特殊字符,除英文"-_"字符外
     *
     * @param str
     * @return
     */
    public static boolean isContainsSpecialChar(String text) {
        if (StringUtils.isBlank(text))
            return false;
        String[] chars = { "[", "`", "~", "!", "@", "#", "$", "%", "^", "&",
                "*", "(", ")", "+", "=", "|", "{", "}", "'", ":", ";", "'",
                ",", "[", "]", ".", "<", ">", "/", "?", "~", "!", "@", "#",
                "¥", "%", "…", "&", "*", "(", ")", "—", "+", "|", "{", "}",
                "【", "】", "‘", ";", ":", "”", "“", "’", "。", ",", "、", "?", "]" };
        for (String ch : chars) {
            if (text.contains(ch))
                return true;
        }
        return false;
    }

    /**
     * 过滤中英文特殊字符,除英文"-_"字符外
     *
     * @param text
     * @return
     */
    public static String stringFilter(String text) {
        String regExpr = "[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]";
        Pattern p = Pattern.compile(regExpr);
        Matcher m = p.matcher(text);
        return m.replaceAll("").trim();
    }

    /**
     * 过滤html代码
     *
     * @param inputString
     *            含html标签的字符串
     * @return
     */
    public static String htmlFilter(String inputString) {
        String htmlStr = inputString; // 含html标签的字符串
        String textStr = "";
        java.util.regex.Pattern p_script;
        java.util.regex.Matcher m_script;
        java.util.regex.Pattern p_style;
        java.util.regex.Matcher m_style;
        java.util.regex.Pattern p_html;
        java.util.regex.Matcher m_html;
        java.util.regex.Pattern p_ba;
        java.util.regex.Matcher m_ba;

        try {
            String regEx_script = "<[\\s]*?script[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?script[\\s]*?>"; // 定义script的正则表达式{或<script[^>]*?>[\\s\\S]*?<\\/script>
            // }
            String regEx_style = "<[\\s]*?style[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?style[\\s]*?>"; // 定义style的正则表达式{或<style[^>]*?>[\\s\\S]*?<\\/style>
            // }
            String regEx_html = "<[^>]+>"; // 定义HTML标签的正则表达式
            String patternStr = "\\s+";

            p_script = Pattern.compile(regEx_script, Pattern.CASE_INSENSITIVE);
            m_script = p_script.matcher(htmlStr);
            htmlStr = m_script.replaceAll(""); // 过滤script标签

            p_style = Pattern.compile(regEx_style, Pattern.CASE_INSENSITIVE);
            m_style = p_style.matcher(htmlStr);
            htmlStr = m_style.replaceAll(""); // 过滤style标签

            p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);
            m_html = p_html.matcher(htmlStr);
            htmlStr = m_html.replaceAll(""); // 过滤html标签

            p_ba = Pattern.compile(patternStr, Pattern.CASE_INSENSITIVE);
            m_ba = p_ba.matcher(htmlStr);
            htmlStr = m_ba.replaceAll(""); // 过滤空格

            textStr = htmlStr;

        } catch (Exception e) {
            System.err.println("Html2Text: " + e.getMessage());
        }
        return textStr;// 返回文本字符串
    }

    /**
     * 正则表达式匹配
     *
     * @param text
     *            待匹配的文本
     * @param reg
     *            正则表达式
     * @return
     * @author jiqinlin
     */
    private final static boolean match(String text, String reg) {
        if (StringUtils.isBlank(text) || StringUtils.isBlank(reg))
            return false;
        return Pattern.compile(reg).matcher(text).matches();
    }

}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: org.apache.commons.lang3.stringutils.jar 是一个用于处理字符串的 Java 库。它属于 Apache Commons Lang 项目的一部分。 这个库提供了许多方便且常用的字符串处理方法。比如,它包含了处理空字符串的方法,如判断字符串是否为空或只包含空格、移除字符串中的空格等。它还提供了一些字符串操作的方法,如字符串的截取、连接、反转等。此外,它还提供了一些处理字符的方法,如判断字符串是否为数字、字母或空白字符、转换字符串大小写等。 org.apache.commons.lang3.stringutils.jar 还包含了一些处理字符串数组的方法。比如,它提供了根据某个字符或字符串将字符串数组连接成一个字符串的方法,也可以将字符串数组按照指定规则进行分割。 此外,这个库还提供了一些处理字符串的其他实用方法,如字符串的填充、重复、截断等。它还提供了一些转换字符串格式的方法,如将字符串转换为 camelCase、snake_case 或 kebab-case 等。 总结来说,org.apache.commons.lang3.stringutils.jar 是一个功能强大且实用的字符串处理库,它提供了丰富的方法来方便开发者对字符串进行各种操作和处理。使用这个库可以有效地简化开发过程,并提高代码的可读性和可维护性。同时,Apache Commons Lang 项目作为一个广泛使用的开源项目,拥有活跃的社区和可靠的技术支持,能够提供稳定可靠的使用体验。 ### 回答2: org.apache.commons.lang3.stringutils.jar 是一个用于字符串操作的Java库,它是Apache Commons项目的一部分。在这个库中,org.apache.commons.lang3.stringutils.jar 提供了许多实用的字符串处理方法和工具类。 首先,该库提供了一系列静态方法,可以对字符串进行常见的操作,例如判断字符串是否为空、去除字符串中的空格、判断字符串是否包含特定字符等。这些方法有助于简化开发人员对字符串的处理和验证。 其次,lib库还提供了各种字符串操作的工具类。例如,StringUtils类提供了一系列高效的字符串操作方法,如截取字符串、替换字符串、大小写转换等。此外,StringEscapeUtils类提供了用于转义HTML、XML和Java字符串的方法,有助于避免特殊字符引起的问题。 此外,该库还包含了一些用于字符串比较和匹配的工具类。例如,StringUtils类提供了进行字符串比较的方法,可以根据不同的比较规则进行字符串的比较。此外,RegExUtils类提供了一些用于正则表达式匹配的方法,可以方便地根据正则表达式进行模式匹配和替换。 总之,org.apache.commons.lang3.stringutils.jar 提供了丰富的字符串处理方法和工具类,可以简化开发人员对字符串的操作,并且提供了高效、易用的字符串处理解决方案。无论是开发web应用、桌面应用还是其他类型的应用,该库都是一个非常有价值的工具。 ### 回答3: org.apache.commons.lang3.stringutils.jar 是一个 Java 库,它是 Apache Commons Lang 的一部分。这个库提供了一系列用于字符串处理的实用方法和工具类。 在 org.apache.commons.lang3.stringutils.jar 中,有很多常用的字符串处理方法,例如: - isBlank() 方法用于判断字符串是否为空白(即全部由空格、制表符、换行符等组成)。 - isEmpty() 方法用于判断字符串是否为空(即长度为0)。 - capitalize() 方法用于将字符串的首字母大写,并将其他字符保持不变。 - uncapitalize() 方法用于将字符串的首字母小写,并将其他字符保持不变。 - join() 方法用于将一个数组或集合中的元素以指定的分隔符连接起来,形成一个新的字符串。 - contains() 方法用于判断字符串是否包含指定的字符序列。 - substring() 方法用于获取字符串的子串。 - swapCase() 方法用于将字符串中的大小写字母进行转换,大写字母转换为小写字母,小写字母转换为大写字母。 除了上述方法外,org.apache.commons.lang3.stringutils.jar 还提供了很多其他实用的字符串处理方法,用于处理字符串的拆分、替换、删除、填充等操作。这些方法都被封装在 StringUtils 类中,可以直接调用使用。 在开发过程中,使用 org.apache.commons.lang3.stringutils.jar 可以方便地处理字符串,提高开发效率和代码质量。同时,由于是开源库,还可以根据需要进行修改和定制,使其更符合实际需求。 总之,org.apache.commons.lang3.stringutils.jar 是一个值得使用的字符串处理库,它提供了丰富的方法和工具类,可以简化字符串的处理过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值