Mega Code Archive

 
Categories / Java / Network Protocol
 

Validator for Zip code, Email, Phone number

//package com.sybrix.easygsp.util; import java.util.regex.Pattern; /**  * Created by IntelliJ IDEA.  * User: dsmith  * Date: Apr 27, 2007  * Time: 6:47:36 PM  *  * this is not mine  */ public class Validator {         private static final String sp = "\\!\\#\\$\\%\\&\\'\\*\\+\\-\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~";         private static final String atext = "[a-zA-Z0-9" + sp + "]";         private static final String atom = atext + "+"; //one or more atext chars         private static final String dotAtom = "\\." + atom;         private static final String localPart = atom + "(" + dotAtom + ")*"; //one atom followed by 0 or more dotAtoms.         //RFC 1035 tokens for domain names:         private static final String letter = "[a-zA-Z]+$";         private static final String domainLetter = "[a-zA-Z]+";         private static final String letDig = "[a-zA-Z0-9]+$";         private static final String letDigHyp = "[a-zA-Z0-9-]+$";         private static final String digit = "[0-9]";         public static final String rfcLabel = "[a-zA-Z0-9]+" + "[a-zA-Z0-9-]+" + "{0,61}" + "[a-zA-Z0-9]+";         private static final String domain = rfcLabel + "(\\." + rfcLabel + ")*\\." + domainLetter + "{2,6}";         //Combined together, these form the allowed email regexp allowed by RFC 2822:         private static final String addrSpec = "^" + localPart + "@" + domain + "$";         //now compile it:         public static final Pattern EMAIL_PATTERN = Pattern.compile(addrSpec);         public static final String phoneNumberRegEx = "(\\d-)?(\\d{3}-)?\\d{3}-\\d{4}";         public static final Pattern PHONE_PATTERN = Pattern.compile(phoneNumberRegEx);         public static final String zipCodeRegEx = "\\d{5}(-\\d{4})?";         public static final Pattern ZIPCODE_PATTERN = Pattern.compile(zipCodeRegEx);         public static final Pattern ALPHA_NUMERIC_PATTERN = Pattern.compile(letDig);         public static final Pattern LETTERS_PATTERN = Pattern.compile(letter);         public static final Pattern DIGIT_PATTERN = Pattern.compile("(\\d+?)");         public static boolean isEmpty(Object value) {                 if (value == null) {                         return true;                 } else if (value.toString().trim().length() == 0) {                         return true;                 }                 return false;         }         public static boolean isEmailValid(String value) {                 return EMAIL_PATTERN.matcher(value).matches();         }         public static boolean isNumeric(String value) {                 if (value == null)                         return false;                 return DIGIT_PATTERN.matcher(value).matches();         }         public static boolean isLettersOnly(String value) {                 if (value == null)                         return false;                 return LETTERS_PATTERN.matcher(value).matches();         }         public static boolean isAlphaNumeric(String value) {                 return ALPHA_NUMERIC_PATTERN.matcher(value).matches();         }         public static boolean isValidPhone(String value) {                 return PHONE_PATTERN.matcher(value).matches();         }         public static boolean isZipCodeValid(String value) {                 return ZIPCODE_PATTERN.matcher(value).matches();         }         public static boolean matches(String value1, String value2) {                 try {                         if (value1 == null || value2 == null) {                                 return false;                         } else if (value1.trim().length() == 0 || value2.trim().length() == 0) {                                 return false;                         } else {                                 return value1.equals(value2);                         }                 } catch (Exception e) {                         return false;                 }         }         /**          * Returns -1 if too short, 1 if too long, else 0 if ok          *          * @param value value to measure          * @param min   - Minimum string length(must be greater than)          * @param max   - Maximum string length (cannot be greater than)          * @return -1 if too short, 1 if too long, else 0 if ok          */         public static int lengthMinMax(String value, int min, int max) {                 if (null == value) {                         return -1;                 } else if (value.trim().length() < min) {                         return -1;                 } else if (value.trim().length() > max) {                         return 1;                 } else {                         return 0;                 }         }         public static boolean isTooShort(String value, int min) {                 if (null == value) {                         return true;                 } else if (value.trim().length() < min) {                         return true;                 } else {                         return false;                 }         }         public static boolean isTooLong(String value, int max) {                 if (null == value) {                         return false;                 } else if (value.trim().length() > max) {                         return true;                 } else {                         return false;                 }         } //        public static boolean isCreditCardValid(Object value) { //                return true; //        } // //        public static boolean isValidUrlValid(Object value) { //                return true; //        }         public static String escapeXML(String s){                 return s.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;");         } }