Validator

import java.util.Arrays;

import java.util.List;

import java.util.regex.Pattern;


public class Validator

{

    

    /**

     * 是否必須有值 <功能詳細描述>

     * 

     * @param value

     * @return boolean

     * @see [類、類#方法、類#成員]

     */

    public static boolean isRequired(String value)

    {

        boolean isFieldValid = false;

        if (value != null && value.trim().length() > 0)

        {

            isFieldValid = true;

        }

        return isFieldValid;

    }

    

    /**

     * 驗證是否爲int型數據 <功能詳細描述>

     * 

     * @param value

     * @return boolean

     * @see [類、類#方法、類#成員]

     */

    public static boolean isInt(String value)

    {

        boolean isFieldValid = false;

        try

        {

            Integer.parseInt(value);

            isFieldValid = true;

        }

        catch (Exception e)

        {

            isFieldValid = false;

        }

        return isFieldValid;

    }

    

    /**

     * 驗證value的長度在min和max之間 <功能詳細描述>

     * 

     * @param value

     * @param minLength 最小長度

     * @param maxLength 最大長度

     * @return boolean

     * @see [類、類#方法、類#成員]

     */

    public static boolean isValidateLength(String value, int minLength, int maxLength)

    {

        String validatedValue = value;

        if (!isRequired(value))

        {

            validatedValue = "";

        }

        return (validatedValue.length() >= minLength && validatedValue.length() <= maxLength);

    }

    

    /**

     * 驗證value大小在Min和Max之間 <功能詳細描述>

     * 

     * @param value

     * @param min

     * @param max

     * @return boolean

     * @see [類、類#方法、類#成員]

     */

    public static boolean validateRange(int value, int min, int max)

    {

        return (value >= min && value <= max);

    }

    

    /**

     * 白名單驗證 <功能詳細描述>

     * 

     * @param options 白名單

     * @param value 待驗證對象

     * @return boolean

     * @see [類、類#方法、類#成員]

     */

    public static boolean validateOption(Object[] options, Object value)

    {

        boolean isValidValue = false;

        try

        {

            List list = Arrays.asList(options);

            if (list != null)

            {

                isValidValue = list.contains(value);

            }

        }

        catch (Exception e)

        {

        }

        return isValidValue;

    }

    

    /**

     * Java 1.4以上,正則表達式驗證 例如Validator.matchPattern(userName, "^[a-zA-Z0-9]*$") <功能詳細描述>

     * 

     * @param value

     * @param expression

     * @return boolean

     * @see [類、類#方法、類#成員]

     */

    public static boolean matchPattern(String value, String expression)

    {

        boolean match = false;

        if (isRequired(expression))

        {

            match = Pattern.matches(expression, value);

        }

        return match;

    }

    

    /**

     * cookie 值使用 javax.servlet.http.Cookie 對象來驗證 cookie 

     * <功能詳細描述>

     */

    /**

     * // Example to validate a required cookie value // First retrieve all available cookies submitted in the HTTP

     * request Cookie[] cookies = request.getCookies(); if (cookies != null) { // find the "user" cookie for (int i=0; i<cookies.length;

     * ++i) { if (cookies[i].getName().equals("user")) { // validate the cookie value if

     * (Validator.validateRequired(cookies[i].getValue()) { // valid cookie value, continue processing request } } } }

     */

    

    

    /** 敏感字符轉換成實體字符:< > " ' % ;  ) ( & + 

     * <功能詳細描述>

     * @param value

     * @return

     * @see [類、類#方法、類#成員]

     */

    public static String filterChar(String value)

    {

        if (value == null)

        {

            return null;

        }

        StringBuffer result = new StringBuffer(value.length());

        for (int i = 0; i < value.length(); ++i)

        {

            switch (value.charAt(i))

            {

                case '<':

                    result.append("&lt;");

                    break;

                case '>':

                    result.append("&gt;");

                    break;

                case '"':

                    result.append("&quot;");

                    break;

                case '\'':

                    result.append("&#39;");

                    break;

                case '%':

                    result.append("&#37;");

                    break;

                case ';':

                    result.append("&#59;");

                    break;

                case '(':

                    result.append("&#40;");

                    break;

                case ')':

                    result.append("&#41;");

                    break;

                case '&':

                    result.append("&amp;");

                    break;

                case '+':

                    result.append("&#43;");

                    break;

                default:

                    result.append(value.charAt(i));

                    break;

            }

        }

        return result.toString();

    }

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章