其他分享
首页 > 其他分享> > StringUtil工具类验证手机号,邮箱,身份证号等

StringUtil工具类验证手机号,邮箱,身份证号等

作者:互联网

import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.commons.lang3.StringUtils;

public class StringUtil extends StringUtils {
    private static final char SEPARATOR = '_';
    private static final String CHARSET = "UTF-8";
    private static List<Pattern> patterns = null;

    public StringUtil() {
    }

    public static byte[] getBytes(String str) {
        if (str != null) {
            try {
                return str.getBytes("UTF-8");
            } catch (UnsupportedEncodingException var2) {
                return null;
            }
        } else {
            return null;
        }
    }

    public static String toString(byte[] bytes) {
        try {
            return new String(bytes, "UTF-8");
        } catch (UnsupportedEncodingException var2) {
            return "";
        }
    }

    public static Boolean toBoolean(Object val) {
        return val == null ? false : BooleanUtils.toBoolean(val.toString()) || "1".equals(val.toString());
    }

    public static String toString(Object obj, String defaultVal) {
        return obj == null ? defaultVal : obj.toString();
    }

    public static boolean inString(String str, String... strs) {
        if (str != null) {
            String[] var2 = strs;
            int var3 = strs.length;

            for(int var4 = 0; var4 < var3; ++var4) {
                String s = var2[var4];
                if (str.equals(trim(s))) {
                    return true;
                }
            }
        }

        return false;
    }

    public static Double toDouble(Object val) {
        if (val == null) {
            return 0.0D;
        } else {
            try {
                return Double.valueOf(trim(val.toString()));
            } catch (Exception var2) {
                return 0.0D;
            }
        }
    }

    public static Float toFloat(Object val) {
        return toDouble(val).floatValue();
    }

    public static Long toLong(Object val) {
        return toDouble(val).longValue();
    }

    public static Integer toInteger(Object val) {
        return toLong(val).intValue();
    }

    public static String ellipsis(String str, int length) {
        if (str == null) {
            return "";
        } else {
            try {
                StringBuilder sb = new StringBuilder();
                int currentLength = 0;
                char[] var4 = replaceHtml(StringEscapeUtils.unescapeHtml4(str)).toCharArray();
                int var5 = var4.length;

                for(int var6 = 0; var6 < var5; ++var6) {
                    char c = var4[var6];
                    currentLength += String.valueOf(c).getBytes("GBK").length;
                    if (currentLength > length - 3) {
                        sb.append("...");
                        break;
                    }

                    sb.append(c);
                }

                return sb.toString();
            } catch (UnsupportedEncodingException var8) {
                var8.printStackTrace();
                return "";
            }
        }
    }

    public static String replaceHtml(String html) {
        if (isBlank(html)) {
            return "";
        } else {
            String regEx = "<.+?>";
            Pattern p = Pattern.compile(regEx);
            Matcher m = p.matcher(html);
            String s = m.replaceAll("");
            return s;
        }
    }

    public static String escapeHtml(String html) {
        return StringEscapeUtils.escapeHtml4(html);
    }

    public static String unescapeHtml(String htmlEscaped) {
        return StringEscapeUtils.unescapeHtml4(htmlEscaped);
    }

    public static String escapeXml(String xml) {
        return StringEscapeUtils.escapeXml11(xml);
    }

    public static String unescapeXml(String xmlEscaped) {
        return StringEscapeUtils.unescapeXml(xmlEscaped);
    }

    public static String appendURIParam(String url, String name, String value) {
        url = url + (url.indexOf(63) == -1 ? '?' : '&');
        url = url + EncodeUtil.encodeUrl(name) + '=' + EncodeUtil.encodeUrl(value);
        return url;
    }

    public static String appendURIParam(String url, Map<String, String> map) {
        Entry entry;
        for(Iterator it = map.entrySet().iterator(); it.hasNext(); url = appendURIParam(url, (String)entry.getKey(), (String)entry.getValue())) {
            entry = (Entry)it.next();
        }

        return url;
    }

    public static String camelToUnderline(String param) {
        if (param != null && !"".equals(param.trim())) {
            int len = param.length();
            StringBuilder sb = new StringBuilder(len);

            for(int i = 0; i < len; ++i) {
                char c = param.charAt(i);
                if (Character.isUpperCase(c)) {
                    sb.append('_');
                    sb.append(Character.toLowerCase(c));
                } else {
                    sb.append(c);
                }
            }

            return sb.toString();
        } else {
            return "";
        }
    }

    public static String underlineToCamel(String param) {
        if (param != null && !"".equals(param.trim())) {
            StringBuilder sb = new StringBuilder(param);
            Matcher mc = Pattern.compile(String.valueOf('_')).matcher(param);
            int var3 = 0;

            while(mc.find()) {
                int position = mc.end() - var3++;
                sb.replace(position - 1, position + 1, sb.substring(position, position + 1).toUpperCase());
            }

            return sb.toString();
        } else {
            return "";
        }
    }

    public static String formatBytes(long size) {
        int bytes = 1024;
        if (size < (long)bytes) {
            return size + "Byte";
        } else {
            size /= (long)bytes;
            if (size < (long)bytes) {
                return size + "K";
            } else {
                size /= (long)bytes;
                if (size < (long)bytes) {
                    size *= 100L;
                    return size / 100L + "." + size % 100L + "M";
                } else {
                    size = size * 100L / (long)bytes;
                    return size / 100L + "." + size % 100L + "G";
                }
            }
        }
    }

    public static String formatMobile(String mobile) {
        return isEmpty(mobile) ? null : mobile.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");
    }

    public static String formatBankCard(String bankCard) {
        return isEmpty(bankCard) ? null : bankCard.replaceAll("(\\d{5})\\d{5}\\d{2}(\\d{4})", "$1****$2");
    }

    public static String formatIdCard(String idCard) {
        return isEmpty(idCard) ? null : idCard.replaceAll("(\\d{4})\\d{10}(\\w{4})", "$1*****$2");
    }

    public static boolean matchMobile(String mobile) {
        if (mobile == null) {
            return false;
        } else {
            String regex = "^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\\d{8}$";
            return Pattern.matches(regex, mobile);
        }
    }

    public static boolean matchEmail(String email) {
        if (email == null) {
            return false;
        } else {
            String regex = "\\w+@\\w+\\.[a-z]+(\\.[a-z]+)?";
            return Pattern.matches(regex, email);
        }
    }

    public static boolean matchDomain(String domain) {
        if (domain == null) {
            return false;
        } else {
            String regex = "^(?=^.{3,255}$)[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$";
            return Pattern.matches(regex, domain);
        }
    }

    public static boolean matchIp(String ip) {
        if (ip == null) {
            return false;
        } else {
            String regex = "^(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])$";
            return Pattern.matches(regex, ip);
        }
    }

    public static boolean matchHttpUrl(String url) {
        if (url == null) {
            return false;
        } else {
            String regex = "^(?=^.{3,255}$)(http(s)?:\\/\\/)?(www\\.)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+(:\\d+)*(\\/\\w+\\.\\w+)*([\\?&]\\w+=\\w*)*$";
            return Pattern.matches(regex, url);
        }
    }

    public static boolean matchBankCard(String bankCard) {
        if (bankCard == null) {
            return false;
        } else if (bankCard.length() >= 15 && bankCard.length() <= 19) {
            char bit = getBankCardCheckCode(bankCard.substring(0, bankCard.length() - 1));
            if (bit == 'N') {
                return false;
            } else {
                return bankCard.charAt(bankCard.length() - 1) == bit;
            }
        } else {
            return false;
        }
    }

    public static char getBankCardCheckCode(String nonCheckCodeBankCard) {
        if (nonCheckCodeBankCard != null && nonCheckCodeBankCard.trim().length() != 0 && nonCheckCodeBankCard.matches("\\d+")) {
            char[] chs = nonCheckCodeBankCard.trim().toCharArray();
            int luhmSum = 0;
            int i = chs.length - 1;

            for(int j = 0; i >= 0; ++j) {
                int k = chs[i] - 48;
                if (j % 2 == 0) {
                    k *= 2;
                    k = k / 10 + k % 10;
                }

                luhmSum += k;
                --i;
            }

            return luhmSum % 10 == 0 ? '0' : (char)(10 - luhmSum % 10 + 48);
        } else {
            return 'N';
        }
    }

    private static List<Object[]> getXssPatternList() {
        List<Object[]> ret = new ArrayList();
        ret.add(new Object[]{"<(no)?script[^>]*>.*?</(no)?script>", 2});
        ret.add(new Object[]{"eval\\((.*?)\\)", 42});
        ret.add(new Object[]{"expression\\((.*?)\\)", 42});
        ret.add(new Object[]{"(javascript:|vbscript:|view-source:)*", 2});
        ret.add(new Object[]{"<(\"[^\"]*\"|'[^']*'|[^'\">])*>", 42});
        ret.add(new Object[]{"(window\\.location|window\\.|\\.location|document\\.cookie|document\\.|alert\\(.*?\\)|window\\.open\\()*", 42});
        ret.add(new Object[]{"<+\\s*\\w*\\s*(oncontrolselect|oncopy|oncut|ondataavailable|ondatasetchanged|ondatasetcomplete|ondblclick|ondeactivate|ondrag|ondragend|ondragenter|ondragleave|ondragover|ondragstart|ondrop|onerror=|onerroupdate|onfilterchange|onfinish|onfocus|onfocusin|onfocusout|onhelp|onkeydown|onkeypress|onkeyup|onlayoutcomplete|onload|onlosecapture|onmousedown|onmouseenter|onmouseleave|onmousemove|onmousout|onmouseover|onmouseup|onmousewheel|onmove|onmoveend|onmovestart|onabort|onactivate|onafterprint|onafterupdate|onbefore|onbeforeactivate|onbeforecopy|onbeforecut|onbeforedeactivate|onbeforeeditocus|onbeforepaste|onbeforeprint|onbeforeunload|onbeforeupdate|onblur|onbounce|oncellchange|onchange|onclick|oncontextmenu|onpaste|onpropertychange|onreadystatuschange|onreset|onresize|onresizend|onresizestart|onrowenter|onrowexit|onrowsdelete|onrowsinserted|onscroll|onselect|onselectionchange|onselectstart|onstart|onstop|onsubmit|onunload)+\\s*=+", 42});
        return ret;
    }

    private static List<Pattern> getPatterns() {
        if (patterns == null) {
            List<Pattern> list = new ArrayList();
            String regex = null;
            Integer flag = null;
            int arrLength = false;
            Iterator var4 = getXssPatternList().iterator();

            while(var4.hasNext()) {
                Object[] arr = (Object[])var4.next();
                int arrLength = arr.length;

                for(int i = 0; i < arrLength; ++i) {
                    regex = (String)arr[0];
                    flag = (Integer)arr[1];
                    list.add(Pattern.compile(regex, flag));
                }
            }

            patterns = list;
        }

        return patterns;
    }

    public static String stripXss(String value) {
        if (isNotBlank(value)) {
            Matcher matcher = null;
            Iterator var2 = getPatterns().iterator();

            while(var2.hasNext()) {
                Pattern pattern = (Pattern)var2.next();
                matcher = pattern.matcher(value);
                if (matcher.find()) {
                    value = matcher.replaceAll("");
                }
            }

            value = value.replaceAll("<", "&lt;").replaceAll(">", "&gt;");
        }

        return value;
    }

    public static String checkPassword(String passwordStr) {
        String regexZ = "\\d*";
        String regexS = "[a-zA-Z]+";
        String regexT = "\\W+$";
        String regexZT = "\\D*";
        String regexST = "[\\d\\W]*";
        String regexZS = "\\w*";
        String regexZST = "[\\w\\W]*";
        if (passwordStr.matches(regexZ)) {
            return "弱";
        } else if (passwordStr.matches(regexS)) {
            return "弱";
        } else if (passwordStr.matches(regexT)) {
            return "弱";
        } else if (passwordStr.matches(regexZT)) {
            return "中";
        } else if (passwordStr.matches(regexST)) {
            return "中";
        } else if (passwordStr.matches(regexZS)) {
            return "中";
        } else {
            return passwordStr.matches(regexZST) ? "强" : passwordStr;
        }
    }

    public static String getExceptionToString(Throwable e) {
        if (e == null) {
            return "";
        } else {
            StringWriter stringWriter = new StringWriter();
            e.printStackTrace(new PrintWriter(stringWriter));
            return stringWriter.toString();
        }
    }

    public static void main(String[] args) {
        System.out.println(matchDomain("515608851@qq.com"));
        System.out.println(matchDomain("www.qq.com"));
        System.out.println(matchDomain("qq.com"));
        System.out.println(matchIp("qq.com"));
        System.out.println(matchIp("192.168.0.1"));
    }
}

 

标签:return,String,身份证号,public,else,static,null,StringUtil,手机号
来源: https://blog.csdn.net/qq_40083897/article/details/111975441