Java 验证表单工具类,史上最全

Java 验证表彰工具类,包含各种验证如邮箱,密码,整数,等等,全的让你想不到

[java]  view plain  copy
  1. package com.wiker.utils;  
  2. import java.util.regex.*;  
  3. /** 
  4.  * 
  5.  * @version 1.0 
  6.  * @author wiker 
  7.  * @since JDK 1.6 
  8.  **/  
  9. public class ValidateUtils {  
  10.     /** 整数  */  
  11.     private static final String  V_INTEGER="^-?[1-9]\\d*$";  
  12.   
  13.     /**  正整数 */  
  14.     private static final String V_Z_INDEX="^[1-9]\\d*$";  
  15.   
  16.     /**负整数 */  
  17.     private static final String V_NEGATIVE_INTEGER="^-[1-9]\\d*$";  
  18.   
  19.     /** 数字 */  
  20.     private static final String V_NUMBER="^([+-]?)\\d*\\.?\\d+$";  
  21.   
  22.     /**正数 */  
  23.     private static final String V_POSITIVE_NUMBER="^[1-9]\\d*|0$";  
  24.   
  25.     /** 负数 */  
  26.     private static final String V_NEGATINE_NUMBER="^-[1-9]\\d*|0$";  
  27.   
  28.     /** 浮点数 */  
  29.     private static final String V_FLOAT="^([+-]?)\\d*\\.\\d+$";  
  30.   
  31.     /** 正浮点数 */  
  32.     private static final String V_POSTTIVE_FLOAT="^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*$";  
  33.   
  34.     /** 负浮点数 */  
  35.     private static final String V_NEGATIVE_FLOAT="^-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*)$";  
  36.   
  37.     /** 非负浮点数(正浮点数 + 0) */  
  38.     private static final String V_UNPOSITIVE_FLOAT="^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0$";  
  39.   
  40.     /** 非正浮点数(负浮点数 + 0) */  
  41.     private static final String V_UN_NEGATIVE_FLOAT="^(-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*))|0?.0+|0$";  
  42.   
  43.     /** 邮件 */  
  44.     private static final String V_EMAIL="^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$";  
  45.   
  46.     /** 颜色 */  
  47.     private static final String V_COLOR="^[a-fA-F0-9]{6}$";  
  48.   
  49.     /** url */  
  50.     private static final String V_URL="^http[s]?:\\/\\/([\\w-]+\\.)+[\\w-]+([\\w-./?%&=]*)?$";  
  51.   
  52.     /** 仅中文 */  
  53.     private static final String V_CHINESE="^[\\u4E00-\\u9FA5\\uF900-\\uFA2D]+$";  
  54.   
  55.     /** 仅ACSII字符 */  
  56.     private static final String V_ASCII="^[\\x00-\\xFF]+$";  
  57.   
  58.     /** 邮编 */  
  59.     private static final String V_ZIPCODE="^\\d{6}$";  
  60.   
  61.     /** 手机 */  
  62.     private static final String V_MOBILE="^(1)[0-9]{10}$";  
  63.   
  64.     /** ip地址 */  
  65.     private static final String V_IP4="^(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)$";  
  66.   
  67.     /** 非空 */  
  68.     private static final String V_NOTEMPTY="^\\S+$";  
  69.   
  70.     /** 图片  */  
  71.     private static final String V_PICTURE="(.*)\\.(jpg|bmp|gif|ico|pcx|jpeg|tif|png|raw|tga)$";  
  72.   
  73.     /**  压缩文件  */  
  74.     private static final String V_RAR="(.*)\\.(rar|zip|7zip|tgz)$";  
  75.   
  76.     /** 日期 */  
  77.     private static final String V_DATE="^((((1[6-9]|[2-9]\\d)\\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\\d|3[01]))|(((1[6-9]|[2-9]\\d)\\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\\d|30))|(((1[6-9]|[2-9]\\d)\\d{2})-0?2-(0?[1-9]|1\\d|2[0-8]))|(((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\\d):[0-5]?\\d:[0-5]?\\d$";  
  78.   
  79.     /** QQ号码  */  
  80.     private static final String V_QQ_NUMBER="^[1-9]*[1-9][0-9]*$";  
  81.   
  82.     /** 电话号码的函数(包括验证国内区号,国际区号,分机号) */  
  83.     private static final String V_TEL="^(([0\\+]\\d{2,3}-)?(0\\d{2,3})-)?(\\d{7,8})(-(\\d{3,}))?$";  
  84.   
  85.     /** 用来用户注册。匹配由数字、26个英文字母或者下划线组成的字符串 */  
  86.     private static final String V_USERNAME="^\\w+$";  
  87.   
  88.     /** 字母 */  
  89.     private static final String V_LETTER="^[A-Za-z]+$";  
  90.   
  91.     /** 大写字母  */  
  92.     private static final String V_LETTER_U="^[A-Z]+$";  
  93.   
  94.     /** 小写字母 */  
  95.     private static final String V_LETTER_I="^[a-z]+$";  
  96.   
  97.     /** 身份证  */  
  98.     private static final String V_IDCARD ="^(\\d{15}$|^\\d{18}$|^\\d{17}(\\d|X|x))$";  
  99.   
  100.     /**验证密码(数字和英文同时存在)*/  
  101.     private static final String V_PASSWORD_REG="[A-Za-z]+[0-9]";  
  102.   
  103.     /**验证密码长度(6-18位)*/  
  104.     private static final String V_PASSWORD_LENGTH="^\\d{6,18}$";  
  105.   
  106.     /**验证两位数*/  
  107.     private static final String V_TWO_POINT="^[0-9]+(.[0-9]{2})?$";  
  108.   
  109.     /**验证一个月的31天*/  
  110.     private static final String V_31DAYS="^((0?[1-9])|((1|2)[0-9])|30|31)$";  
  111.   
  112.       
  113.     private ValidateUtils(){}  
  114.       
  115.       
  116.     /** 
  117.      * 验证是不是整数 
  118.      * @param value 要验证的字符串 要验证的字符串 
  119.      * @return  如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  120.      */  
  121.     public static boolean Integer(String value){  
  122.         return match(V_INTEGER,value);  
  123.     }  
  124.   
  125.     /** 
  126.      * 验证是不是正整数 
  127.      * @param value 要验证的字符串 
  128.      * @return  如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  129.      */  
  130.     public static boolean Z_index(String value){  
  131.         return match(V_Z_INDEX,value);  
  132.     }  
  133.   
  134.     /** 
  135.      * 验证是不是负整数 
  136.      * @param value 要验证的字符串 
  137.      * @return  如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  138.      */  
  139.     public static boolean Negative_integer(String value){  
  140.         return match(V_NEGATIVE_INTEGER,value);  
  141.     }  
  142.   
  143.     /** 
  144.      * 验证是不是数字 
  145.      * @param value 要验证的字符串 
  146.      * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  147.      */  
  148.     public static boolean Number(String value){  
  149.         return match(V_NUMBER,value);  
  150.     }  
  151.   
  152.     /** 
  153.      * 验证是不是正数 
  154.      * @param value 要验证的字符串 
  155.      * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  156.      */  
  157.     public static boolean PositiveNumber(String value){  
  158.         return match(V_POSITIVE_NUMBER,value);  
  159.     }  
  160.   
  161.     /** 
  162.      * 验证是不是负数 
  163.      * @param value 要验证的字符串 
  164.      * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  165.      */  
  166.     public static boolean NegatineNumber(String value){  
  167.         return match(V_NEGATINE_NUMBER,value);  
  168.     }  
  169.   
  170.     /** 
  171.      * 验证一个月的31天 
  172.      * @param value 要验证的字符串 
  173.      * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  174.      */  
  175.     public static boolean Is31Days(String value){  
  176.         return match(V_31DAYS,value);  
  177.     }  
  178.   
  179.     /** 
  180.      * 验证是不是ASCII 
  181.      * @param value 要验证的字符串 
  182.      * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  183.      */  
  184.     public static boolean ASCII(String value){  
  185.         return match(V_ASCII,value);  
  186.     }  
  187.   
  188.   
  189.     /** 
  190.      * 验证是不是中文 
  191.      * @param value 要验证的字符串 
  192.      * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  193.      */  
  194.     public static boolean Chinese(String value){  
  195.         return match(V_CHINESE,value);  
  196.     }  
  197.   
  198.   
  199.   
  200.     /** 
  201.      * 验证是不是颜色 
  202.      * @param value 要验证的字符串 
  203.      * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  204.      */  
  205.     public static boolean Color(String value){  
  206.         return match(V_COLOR,value);  
  207.     }  
  208.   
  209.   
  210.   
  211.     /** 
  212.      * 验证是不是日期 
  213.      * @param value 要验证的字符串 
  214.      * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  215.      */  
  216.     public static boolean Date(String value){  
  217.         return match(V_DATE,value);  
  218.     }  
  219.   
  220.     /** 
  221.      * 验证是不是邮箱地址 
  222.      * @param value 要验证的字符串 
  223.      * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  224.      */  
  225.     public static boolean Email(String value){  
  226.         return match(V_EMAIL,value);  
  227.     }  
  228.   
  229.     /** 
  230.      * 验证是不是浮点数 
  231.      * @param value 要验证的字符串 
  232.      * @return  如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  233.      */  
  234.     public static boolean Float(String value){  
  235.         return match(V_FLOAT,value);  
  236.     }  
  237.   
  238.     /** 
  239.      * 验证是不是正确的身份证号码 
  240.      * @param value 要验证的字符串 
  241.      * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  242.      */  
  243.     public static boolean IDcard(String value){  
  244.         return match(V_IDCARD,value);  
  245.     }  
  246.   
  247.     /** 
  248.      * 验证是不是正确的IP地址 
  249.      * @param value 要验证的字符串 
  250.      * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  251.      */  
  252.     public static boolean IP4(String value){  
  253.         return match(V_IP4,value);  
  254.     }  
  255.   
  256.     /** 
  257.      * 验证是不是字母 
  258.      * @param value 要验证的字符串 
  259.      * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  260.      */  
  261.     public static boolean Letter(String value){  
  262.         return match(V_LETTER,value);  
  263.     }  
  264.   
  265.     /** 
  266.      * 验证是不是小写字母 
  267.      * @param value 要验证的字符串 
  268.      * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  269.      */  
  270.     public static boolean Letter_i(String value){  
  271.         return match(V_LETTER_I,value);  
  272.     }  
  273.   
  274.   
  275.     /** 
  276.      * 验证是不是大写字母 
  277.      * @param value 要验证的字符串 
  278.      * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  279.      */  
  280.     public static boolean Letter_u(String value){  
  281.         return match(V_LETTER_U,value);  
  282.     }  
  283.   
  284.   
  285.     /** 
  286.      * 验证是不是手机号码 
  287.      * @param value 要验证的字符串 
  288.      * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  289.      */  
  290.     public static boolean Mobile(String value){  
  291.         return match(V_MOBILE,value);  
  292.     }  
  293.   
  294.     /** 
  295.      * 验证是不是负浮点数 
  296.      * @param value 要验证的字符串 
  297.      * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  298.      */  
  299.     public static boolean Negative_float(String value){  
  300.         return match(V_NEGATIVE_FLOAT,value);  
  301.     }  
  302.   
  303.     /** 
  304.      * 验证非空 
  305.      * @param value 要验证的字符串 
  306.      * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  307.      */  
  308.     public static boolean Notempty(String value){  
  309.         return match(V_NOTEMPTY,value);  
  310.     }  
  311.   
  312.     /** 
  313.      * 验证密码的长度(6~18位) 
  314.      * @param value 要验证的字符串 
  315.      * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  316.      */  
  317.     public static boolean Number_length(String value){  
  318.         return match(V_PASSWORD_LENGTH,value);  
  319.     }  
  320.   
  321.     /** 
  322.      * 验证密码(数字和英文同时存在) 
  323.      * @param value 要验证的字符串 
  324.      * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  325.      */  
  326.     public static boolean Password_reg(String value){  
  327.         return match(V_PASSWORD_REG,value);  
  328.     }  
  329.   
  330.     /** 
  331.      * 验证图片 
  332.      * @param value 要验证的字符串 
  333.      * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  334.      */  
  335.     public static boolean Picture(String value){  
  336.         return match(V_PICTURE,value);  
  337.     }  
  338.   
  339.     /** 
  340.      * 验证正浮点数 
  341.      * @param value 要验证的字符串 
  342.      * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  343.      */  
  344.     public static boolean Posttive_float(String value){  
  345.         return match(V_POSTTIVE_FLOAT,value);  
  346.     }  
  347.   
  348.     /** 
  349.      * 验证QQ号码 
  350.      * @param value 要验证的字符串 
  351.      * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  352.      */  
  353.     public static boolean QQnumber(String value){  
  354.         return match(V_QQ_NUMBER,value);  
  355.     }  
  356.   
  357.     /** 
  358.      * 验证压缩文件 
  359.      * @param value 要验证的字符串 
  360.      * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  361.      */  
  362.     public static boolean Rar(String value){  
  363.         return match(V_RAR,value);  
  364.     }  
  365.   
  366.     /** 
  367.      * 验证电话 
  368.      * @param value 要验证的字符串 
  369.      * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  370.      */  
  371.     public static boolean Tel(String value){  
  372.         return match(V_TEL,value);  
  373.     }  
  374.   
  375.     /** 
  376.      * 验证两位小数 
  377.      * @param value 要验证的字符串 
  378.      * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  379.      */  
  380.     public static boolean Two_point(String value){  
  381.         return match(V_TWO_POINT,value);  
  382.     }  
  383.   
  384.     /** 
  385.      * 验证非正浮点数 
  386.      * @param value 要验证的字符串 
  387.      * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  388.      */  
  389.     public static boolean Un_negative_float(String value){  
  390.         return match(V_UN_NEGATIVE_FLOAT,value);  
  391.     }  
  392.   
  393.     /** 
  394.      * 验证非负浮点数 
  395.      * @param value 要验证的字符串 
  396.      * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  397.      */  
  398.     public static boolean Unpositive_float(String value){  
  399.         return match(V_UNPOSITIVE_FLOAT,value);  
  400.     }  
  401.   
  402.     /** 
  403.      * 验证URL 
  404.      * @param value 要验证的字符串 
  405.      * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  406.      */  
  407.     public static boolean Url(String value){  
  408.         return match(V_URL,value);  
  409.     }  
  410.   
  411.     /** 
  412.      * 验证用户注册。匹配由数字、26个英文字母或者下划线组成的字符串 
  413.      * @param value 要验证的字符串 
  414.      * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  415.      */  
  416.     public static boolean UserName(String value){  
  417.         return match(V_USERNAME,value);  
  418.     }  
  419.   
  420.     /** 
  421.      * 验证邮编 
  422.      * @param value 要验证的字符串 
  423.      * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> 
  424.      */  
  425.     public static boolean Zipcode(String value){  
  426.         return match(V_ZIPCODE,value);  
  427.     }  
  428.   
  429.      /** 
  430.      * @param regex 正则表达式字符串 
  431.      * @param str 要匹配的字符串 
  432.      * @return 如果str 符合 regex的正则表达式格式,返回true, 否则返回 false; 
  433.      */  
  434.     private static boolean match(String regex, String str)  
  435.     {  
  436.         Pattern pattern = Pattern.compile(regex);  
  437.         Matcher matcher = pattern.matcher(str);  
  438.         return matcher.matches();  
  439.     }  
  440. }  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值