`
keepwork
  • 浏览: 332597 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

ValidateUtil

阅读更多

 开发者博客www.developsearch.com

 

[code="java"]/**
 * 验证类
 *
 * @author chenxin
 * @version [版本号, 2012-5-21]
 * @see [相关类/方法]
 * @since [产品/模块版本]

 * @descript: 验证帮助类: 包括电子邮件,固定电话,移动电话,邮编,数字,整数,浮点数,英文,汉字<br>
 */
public class ValidateUtil {

    private final static String regexEmail = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";
    private final static String regexPhone = "^((\\d+[0-9\\-]*\\d+)|(0))$";
    private final static String regexMobile = "((\\d{6,13})|(0))";
    private final static String regexZip = "[1-9]\\d{5}";
    private final static String regexInteger = "\\d+";
    private final static String regexEnglish = "[A-Za-z]+";
    private final static String regexNonChinese = "[^\u0391-\uFFE5]+"; //全部由非汉字的字符组成,就是非汉字

 

/**
     * 判断指定的字符串是否符合某个正则表达式
     * @param content 字符串
     * @param regex 正则表达式
     * @param caseSentivite 是否大小写敏感,true区分大小写,false不区分
     * @return 符合返回true,否则返回false
     */
    public static boolean isMatchString(String content,String regex, boolean caseSentivite){
        boolean result = false;
        if(null == content || null == regex){
            throw new NullPointerException("error,content or regex is null");
        }       

        Pattern pattern = null;
        if(!caseSentivite){
            pattern = Pattern.compile(regex,Pattern.CASE_INSENSITIVE);
        }else{
            pattern = Pattern.compile(regex);
        }
       
        Matcher matcher = pattern.matcher(content);
        result = matcher.matches();
       
        return result;
    }
   
    /**
     * 判断指定的字符串是否符合某个正则表达式,大小写敏感
     * @param content 字符串
     * @param regex 正则表达式
     * @return 符合返回true,否则返回false
     */
    public static boolean isMatchString(String content,String regex){
        return isMatchString(content,regex,true);
    }
   
    /**
     *
     * isEmail: 验证是否为电子邮件
     *
     * @param content: 验证内容
     * @return 验证结果
     *
     */
    public static boolean isEmail(String content){
        return isMatchString(content, regexEmail);
    }
   
    /**
     *
     * isPhone: 验证是否为固定电话
     *
     * @param content: 验证内容
     * @return 验证结果
     *
     */
    public static boolean isPhone(String content){
        return isMatchString(content, regexPhone);
    }
   
    public static boolean isYesNo(String content){
        return "0".equals(content) || "1".equals(content);
    }
   
    /**
     *
     * isMobile: 验证是否为移动电话
     *
     * @param content: 验证内容
     * @return 验证结果
     *
     */
    public static boolean isMobile(String content){
        return isMatchString(content, regexMobile);
    }
   
    /**
     *
     * isZip: 验证是否为邮编
     *
     * @param content: 验证内容
     * @return 验证结果
     *
     */
    public static boolean isZip(String content){
        return isMatchString(content, regexZip);
    }
   
    /**
     *
     * isInteger: 验证是否为整数
     *
     * @param content: 验证内容
     * @return 验证结果
     *
     */
    public static boolean isInteger(String content){
        return isMatchString(content, regexInteger);
    }
   
    /**
     *
     * isEnglish: 验证是否为英文字母
     *
     * @param content: 验证内容
     * @return 验证结果
     *
     */
    public static boolean isEnglish(String content){
        return isMatchString(content, regexEnglish);
    }
   
    /**
     *
     * containsChinese: 验证是否包含汉字
     *
     * @param content: 验证内容
     * @return 验证结果
     *
     */
    public static boolean containsChinese(String content) {
        for (int i = 0; i < content.length(); i++) {
            int c = (int) content.charAt(i);
            if (c >= 0x0391 && c <= 0xFFE5) {
                return true;
            }
        }
        return false;
    }
   
    /**
     *
     * isDouble: 验证是否为浮点数
     *
     * @param content: 验证内容
     * @return 验证结果
     *
     */
    public static boolean isDouble(String content){
        try {
            Double.parseDouble(content);
            return true;
        } catch (NumberFormatException e) {
            return false;
        }
    }
   
    //excel 中使用double表示日期的
    public static boolean isExcelDate(String content){
        return isDouble(content);
    }

    //截取电话号码
    public static String filterPhone(String strPhone) {
        String result = strPhone;
        int iIndex = strPhone.indexOf("-");

        // 规则C:判断是否有符号'-',有的话,则截取后面的数据
        if (iIndex != -1)
            result = strPhone.substring(iIndex + 1);

        int iLength = result.length();

        // 规则A:判断是否长度为7或8,如果是,则不做任何处理返回
        if (iLength == 7 || iLength == 8)
            return result;

        // 规则B:
        if (iLength > 8) {

            if (result.charAt(0) == '0') {
                // 规则B.a 如果为013、015、018开头,截掉第一位
                String strTemp = result.substring(0, 3);
                if (strTemp.equals("013") || strTemp.equals("015")
                        || strTemp.equals("018") || strTemp.equals("014")) {
                    return result.substring(1);
                }
                // 规则B.b 非a且为02,01开头,截掉前3位
                strTemp = result.substring(0, 2);
                if (strTemp.equals("01") || strTemp.equals("02")) {
                    return result.substring(3);
                } else
                    // 规则B.c 非a、b,则截掉前4位
                    return result.substring(4);

            } else
                // 直接获取
                return result;
        }

        return result;
    }

 

 


    //验证字符串中是否包含字母
    public static boolean matchLetter(String str){
        boolean isLetter=false;   
        for(int i=0;i<str.length();i++){   
            if(Character.isLetter(str.charAt(i))){   
                isLetter=true;     
            }
        }     
        return isLetter;
    }
    //验证字符串中是否包含数字
    public static boolean matchDigit(String str){
        boolean isNumber=false;   
        for(int i=0;i<str.length();i++){   
            if(Character.isDigit(str.charAt(i))){   
                isNumber=true;     
            }
        }     
        return isNumber;
    }
   
    /**
     * 字符串是否包含汉字  在unix下可用
     * @param str
     * @return
     */
    public static boolean isCN(String str){     
            String regex = "[0-9a-zA-Z_-]+$";//只允许数字,字母,下划线和-
            //String regex = "[u4e00-u9fa5]";//不允许输中文
            if(str.matches(regex)){
                return false;  
            }else{
                return true;
            }
    }



    /**
     * 过滤HTML标签
     * @param html
     * @return
     */
    public static String HtmlFilter(String html){
        java.util.regex.Pattern p_html;
        java.util.regex.Matcher m_html;
        String regEx_html = "<.*?>|&nbsp;|&ldquo;|&rdquo;"; //定义HTML标签的正则表达式      
        p_html = Pattern.compile(regEx_html,Pattern.CASE_INSENSITIVE);
        m_html = p_html.matcher(html);
        html = m_html.replaceAll(""); //过滤html标签
        return html.trim();
    }



}[/code]

分享到:
评论

相关推荐

    ValidateUtil字符串简单操作工具类

    字符串工具类

    ValidateUtil.java

    ValidateUtil.java

    ValidateUtil源码

    ValidateUtil源码

    用于在Java层验证数据的合法性

    1. 调用方法ValidateUtil.validate(String json,Map,String[]&gt; map,String suffix); 具体参数表示意思可查看代码里的注释 2. 类似JQuery的验证,传入的json字符串必须是符合Json规则的字符串如下格式: "{rules : {...

    计算机毕业设计-CRMEB-Java版商城系统-controller.zip

    同时,利用Hibernate Validator或Apache Commons Lang的ValidateUtil进行数据有效性验证,确保业务处理的正确性。 6. 异常处理:Controller层是处理异常的重要环节。开发者通常会定义全局的异常处理器,捕获并统一...

    ValidateUtils.java

    各种验证,包括数字、邮件、颜色、中英文、url、邮编、IP地址、图片、QQ、身份证、验证码、密码验证等。

    动态代理与反射

    例如,文件`javabean-validateUtil`可能是一个用于验证Java Bean属性值的工具类,它可能通过反射遍历Bean的所有字段,然后利用动态代理在setter方法上拦截并执行验证规则。 总的来说,动态代理和反射是Java强大且...

    C#公共类通用类非常齐全

    各种输入格式验证辅助类(ValidateUtil.cs) ----------Network-------------- Cookie操作辅助类(CookieManger.cs) FTP操作辅助类(FTPHelper.cs) HTML操作类(HttpHelper.cs) 网页抓取帮助(HttpWebRequestHelper.cs...

    java后台注解校验工具类

    在上述代码中,`validateUtil.validate(new User())`将检查`User`实例的属性,如果存在任何违反注解的约束,将会打印出相应的错误信息。 此外,还可以使用Spring框架的`@Validated`注解在控制器层进行注解校验,...

    c# 公用操作类库源码

    各种输入格式验证辅助类(ValidateUtil.cs) ----------Network-------------- Cookie操作辅助类(CookieManger.cs) FTP操作辅助类(FTPHelper.cs) HTML操作类(HttpHelper.cs) 网页抓取帮助...

    DotNet通用类库大全

    各种输入格式验证辅助类(ValidateUtil.cs) ----------Network-------------- Cookie操作辅助类(CookieManger.cs) FTP操作辅助类(FTPHelper.cs) HTML操作类(HttpHelper.cs) 网页抓取帮助...

    WHC.OrderWater.Commons 伍华聪 公共类源码 类库 帮助文档

    各种输入格式验证辅助类(ValidateUtil.cs) ----------Network-------------- Cookie操作辅助类(CookieManger.cs) FTP操作辅助类(FTPHelper.cs) HTML操作类(HttpHelper.cs) 网页抓取帮助...

    C#公共通用类

    各种输入格式验证辅助类(ValidateUtil.cs) ----------Network-------------- Cookie操作辅助类(CookieManger.cs) FTP操作辅助类(FTPHelper.cs) HTML操作类(HttpHelper.cs) 网页抓取帮助(HttpWebRequestHelper.cs...

    C#公共类源代码 带帮助文档

    各种输入格式验证辅助类(ValidateUtil.cs) ----------Network-------------- Cookie操作辅助类(CookieManger.cs) FTP操作辅助类(FTPHelper.cs) HTML操作类(HttpHelper.cs) 网页抓取帮助...

    WHC.OrderWater.Commons公共类源码_文档[最新整理]

    各种输入格式验证辅助类(ValidateUtil.cs) ----------Network-------------- Cookie操作辅助类(CookieManger.cs) FTP操作辅助类(FTPHelper.cs) HTML操作类(HttpHelper.cs) 网页抓取帮助...

    aspnet公共类cs文件.rar

    各种输入格式验证辅助类(ValidateUtil.cs) ----------Network-------------- Cookie操作辅助类(CookieManger.cs) FTP操作辅助类(FTPHelper.cs) HTML操作类(HttpHelper.cs) 网页抓取帮助(HttpWebRequestHelper.cs...

    WHC第三方控件

    15. 各种输入格式验证辅助类(ValidateUtil.cs) ----------Network-------------- 1. Cookie操作辅助类(CookieManger.cs) 2. FTP操作辅助类(FTPHelper.cs) 3. HTML操作类(HttpHelper.cs) 4. 网页抓取帮助...

    DotNet公用类(超多附文档)

    15.各种输入格式验证辅助类(ValidateUtil.cs) ----------Network-------------- 1.Cookie操作辅助类(CookieManger.cs) 2.FTP操作辅助类(FTPHelper.cs) 3.HTML操作类(HttpHelper.cs) 4.网页抓取帮助...

    react-validation-utils:根据状态验证表单组件的React

    react-validation-utils该库不再维护它被替换为[instant-validation]( ) 根据状态验证表单组件的React。 所有的国家管理都处于幕后。 创建Validation类实例并描述字段。 const Validator = new Validation ( { ...

Global site tag (gtag.js) - Google Analytics