FieldsValidation.java
上传用户:vip_99
上传日期:2021-03-27
资源大小:61159k
文件大小:5k
源码类别:

android开发

开发平台:

Java

  1. import java.util.regex.Matcher;
  2. import java.util.regex.Pattern;
  3. /**
  4.  * 
  5.  * <p>Title: FieldsValidation</p> 
  6.  * 
  7.  * <p>Description: Java utility to validate email, phone number, ssn using regular expressions</p> 
  8.  * 
  9.  * <p>Copyright: Copyright (c) 2007</p> 
  10.  * 
  11.  * <p>Company: zParacha.com</p>
  12.  * 
  13.  * @author : zParacha
  14.  * @version 1.0
  15.  */
  16. public class FieldsValidation{
  17. /**
  18.  * main method: Test client to demonstrate the use of utility class.
  19.  * @param args[]. An array of String objects (email, phoneNumber, SSN, number).
  20.  */
  21.  public static void main(String args[]){
  22.   String email = "zparacha@zparacha.com";
  23.   String phoneNumber = "9729088589";
  24.   String ssn = "789858569";
  25.   String number = "1234";
  26.   if(args.length > 2){
  27.    email = args[0];
  28.    phoneNumber = args[1];
  29.    ssn = args[2];
  30.    number = args[3];
  31.    
  32.   }
  33.   if(!FieldsValidation.isEmailValid(email)){
  34.    System.out.println(email + " is not a valid email address.");
  35.   }else{
  36.    System.out.println(email + " is a valid email address.");
  37.   }
  38.   if(!FieldsValidation.isPhoneNumberValid(phoneNumber)){
  39.    System.out.println(phoneNumber + " is not a valid phone Number.");
  40.   }else{
  41.    System.out.println(phoneNumber + " is a valid phone number.");
  42.   }
  43.   if(!FieldsValidation.isSSNValid(ssn)){
  44.    System.out.println(ssn + " is not a valid SSN.");
  45.   }else{
  46.    System.out.println(ssn + " is a valid SSN.");
  47.   }
  48.   if(!FieldsValidation.isNumeric(number)){
  49.    System.out.println(number + " is a not valid number.");
  50.   }else{
  51.    System.out.println(number + " is a valid number."); 
  52.   }
  53.  }
  54.  
  55.  /**
  56.  * This method  checks if the input email address is a valid email addrees.
  57.  * @param email String. Email adress to validate
  58.  * @return boolean: true if email address is valid, false otherwise.
  59.  */
  60.  public static boolean isEmailValid(String email){
  61.   boolean isValid = false;
  62.   /*
  63.    Email format: A valid email address will have following format 
  64.    [\w\.-]+ : Begins with word characters, (may include periods and hypens).
  65.    @: It must have a '@' symbol after initial characters.
  66.    ([\w\-]+\.)+ : @ must follow by more alphanumeric characters (may include hypens.). This part must also have a "." to separate domain and subdomain names.
  67.    [A-Z]{2,4}$: Must end with two to four alaphabets. (This will allow domain names with 2, 3 and 4 characters e.g pa, com, net, wxyz)
  68.    */
  69.  String expression = "^[\w\.-]+@([\w\-]+\.)+[A-Z]{2,4}$";
  70.  CharSequence inputStr = email;
  71.  //Make the comparison case-insensitive. 
  72.  Pattern pattern = Pattern.compile(expression,Pattern.CASE_INSENSITIVE);
  73.  Matcher matcher = pattern.matcher(inputStr);
  74.  if(matcher.matches()){
  75.   isValid = true;
  76.  }
  77.  return isValid;
  78.  }
  79.  
  80.  /**
  81.  * This method  checks if the input phone number is a valid phone number.
  82.  * @param email String. Phone number to validate
  83.  * @return boolean: true if phone number is valid, false otherwise.
  84.  */
  85.  public static boolean isPhoneNumberValid(String phoneNumber){
  86.    boolean isValid = false;
  87.    /* Phone Number format:
  88.         ^\(? : May start with an option "(" .
  89. (\d{3}): Followed by 3 digits.
  90. \)? : May have an optional ")"
  91. [- ]? : May have an optional "-" after the first 3 digits or after optional ) character.
  92. (\d{3}) : Followed by 3 digits.
  93. [- ]? : May have another optional "-" after numeric digits.
  94. (\d{4})$: ends with four digits.
  95. Matches following:
  96.  (123)456-7890, 123-456-7890, 1234567890, (123)-456-7890
  97.    */
  98.    String expression = "^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$";
  99.    CharSequence inputStr = phoneNumber;
  100.    Pattern pattern = Pattern.compile(expression);
  101.    Matcher matcher = pattern.matcher(inputStr);
  102.    if(matcher.matches()){
  103.    isValid = true;
  104.    }
  105.    return isValid; 
  106.  }
  107.  
  108.  /**
  109.  * This method  checks if the input social security number is valid.
  110.  * @param email String. Social Security number to validate
  111.  * @return boolean: true if social security number is valid, false otherwise.
  112.  */
  113.  public static boolean isSSNValid(String ssn){
  114.    boolean isValid = false;
  115.    //SSN format:
  116.    /*
  117.        ^\d{3} : Starts with three numeric digits.
  118. [- ]?   : Followed by an optional - and space
  119. \d{2}: Two numeric digits after the optional "-"
  120. [- ]? : May contains an optional second "-" character.
  121. \d{4}:  ends with four numeric digits.
  122.    */
  123.    String expression = "^\d{3}[- ]?\d{2}[- ]?\d{4}$";
  124.    CharSequence inputStr = ssn;
  125.    Pattern pattern = Pattern.compile(expression);
  126.    Matcher matcher = pattern.matcher(inputStr);
  127.    if(matcher.matches()){
  128.    isValid = true;
  129.    }
  130.    return isValid; 
  131.  }
  132.  
  133.   /**
  134.  * This method  checks if the input text contains all numeric characters.
  135.  * @param email String. Number to validate
  136.  * @return boolean: true if the input is all numeric, false otherwise.
  137.  */
  138.  public static boolean isNumeric(String number){
  139.    boolean isValid = false;
  140.    //Number:
  141.    /*
  142.        ^\d{3} : Starts with three numeric digits.
  143. [- ]?   : Followed by an optional - and space
  144. \d{2}: Two numeric digits after the optional "-"
  145. [- ]? : May contains an optional second "-" character.
  146. \d{4}:  ends with four numeric digits.
  147.    */
  148.    String expression = "[-+]?[0-9]*\.?[0-9]+$";
  149.    //expression = "/^((\d+) ?)?(d+[- ])*d+$/";
  150.    //expression = "^\d{3}$";
  151.    CharSequence inputStr = number;
  152.    Pattern pattern = Pattern.compile(expression);
  153.    Matcher matcher = pattern.matcher(inputStr);
  154.    if(matcher.matches()){
  155.    isValid = true;
  156.    }
  157.    return isValid; 
  158.  }
  159. }