| Ny i java? Så har du her en klasse indeholdende en masse metoder som du kan anvende til validering af data.
 
 ----------------------------Start of class-----------------------------------------
 public class Validate
 {
 
 public static boolean erEtStortBogstavDK(char etTegn)
 // Pre:      -
 // Post:   Returnerer true, hvis etTegn er et stort dansk bogstav
 //            A-Å, ellers false
 {
 if ((etTegn >= 'A' && etTegn <= 'Z') || etTegn == 'Æ' ||
 etTegn == 'Ø' || etTegn == 'Å')
 return true;
 else
 return false;
 }
 
 public static boolean erEtLilleBogstavDK(char etTegn)
 // Pre:      -
 // Post:   Returnerer true, hvis etTegn er et lille dansk bogstav
 //            a-å, ellers false
 {
 if ((etTegn >= 'a' && etTegn <= 'z') || etTegn == 'æ' ||
 etTegn == 'ø' || etTegn == 'å')
 return true;
 else
 return false;
 }
 
 public static boolean erEtCiffer(char etTegn)
 {
 if (etTegn >= '0' && etTegn <= '9')
 return true;
 else
 return false;
 }
 
 public static boolean erBlank(char etTegn)
 {
 if (etTegn == ' ')
 return true;
 else
 return false;
 }
 
 public static boolean erEMailChar(char enChar)
 {
 if ((enChar >= 'a' && enChar <= 'z') || enChar == '@' || enChar == '.')
 return true;
 else
 return false;
 }
 
 public static boolean erBilRegNrDK(String etRegNr)
 // Pre :    -
 // Post:    Returnerer true, hvis etRegNr opfylder de alm. syntaktiske regler
 //            for bilers indregistreringsnumre i DK: 2 store bogstaver efterfulgt
 //            af en blank, derefter 2 cifre, en blank og 3 cifre. Ellers returneres
 //            false. Valideringen er ikke udtømmende og tager ikke højde for de
 //        såkaldte "købenumre"
 {
 if (etRegNr.length() != 9)
 return false;
 for (int i = 0; i < 9; i++)
 {
 switch (i)
 {
 case 0:
 if(!erEtStortBogstavDK(etRegNr.charAt(i)))
 return false;
 break;
 case 1:
 if(!erEtStortBogstavDK(etRegNr.charAt(i)))
 return false;
 break;
 case 2:
 if(!erBlank(etRegNr.charAt(i)))
 return false;
 break;
 case 3:
 if(!erEtCiffer(etRegNr.charAt(i)))
 return false;
 break;
 case 4:
 if(!erEtCiffer(etRegNr.charAt(i)))
 return false;
 break;
 case 5:
 if(!erBlank(etRegNr.charAt(i)))
 return false;
 break;
 case 6:
 if(!erEtCiffer(etRegNr.charAt(i)))
 return false;
 break;
 case 7:
 if(!erEtCiffer(etRegNr.charAt(i)))
 return false;
 break;
 case 8:
 if(!erEtCiffer(etRegNr.charAt(i)))
 return false;
 break;
 }
 }
 return true;
 }
 
 public static boolean erEnkeltNavn(String etNavn)
 // Pre:      -
 // Post:   Returnerer true hvis etNavn starter med et stort bogstav,
 //            som efterfølges af små bogstaver. Kan også anvendes til fx
 //            bynavne (husk! bynavne kan være flere ord: New York)
 {
 if (etNavn.length() <= 1)
 return false;
 else
 if (!erEtStortBogstavDK(etNavn.charAt(0)))
 return false;
 else
 for (int i = 1; i < etNavn.length(); i++)
 if (!erEtLilleBogstavDK(etNavn.charAt(i)))
 return false;
 return true;
 
 }
 
 public static boolean erInitial(String enStreng)
 // Pre:      -
 // Post:   Returnerer true hvis enStreng er et stort bogstav
 //            efterfulgt af et punktum.
 {
 if (enStreng.length() != 2)
 return false;
 if (!erEtStortBogstavDK(enStreng.charAt(0)))
 return false;
 if (enStreng.charAt(1) != '.')
 return false;
 return true;
 
 }
 
 public static boolean erFuldtNavn(String etNavn)
 // Pre:      -
 // Post:   Returnerer true hvis etNavn består af mindst to og højest
 //            fire navne og initialer adskilte af blanke. Sidste element
 //            skal være et navn. Kan ikke håndtere bindestreger og navne
 //            som starter med lille fx 'von'
 {
 StringTokenizer enST = new StringTokenizer(etNavn," ");
 
 if (enST.superfluousDel())
 return false;
 
 int tokens = enST.countTokens();
 
 if (tokens > 4 || tokens < 2)
 return false;
 
 for (int i = 0; i < tokens - 1; i++)
 {
 String tempToken = enST.nextToken();
 if (!erEnkeltNavn(tempToken) && !erInitial(tempToken))
 return false;
 }
 
 if (!erEnkeltNavn(enST.nextToken()))
 return false;
 
 return true;
 }
 
 public static boolean erTlfNrGrp(String enStreng)
 // Pre:      -
 // Post:   Returnerer true hvis enStreng har formen:
 //            "99 99 99 99" hvor 9 er et vilkårligt ciffer
 //            ellers false
 {
 if (enStreng.length() != 11)
 return false;
 
 StringTokenizer enST = new StringTokenizer(enStreng," ");
 
 int tokens = enST.countTokens();
 
 if (tokens != 4)
 return false;
 
 for (int i = 0; i < tokens; i++)
 {
 String tempToken = enST.nextToken();
 if (tempToken.length() != 2 ||
 !erEtCiffer(tempToken.charAt(0)) ||
 !erEtCiffer(tempToken.charAt(1)))
 return false;
 }
 
 return true;
 }
 
 
 public static boolean erEMailAdresse(String enStreng)
 {
 // Metoden er ganske uautoriseret og overholder IKKE standarden for
 // e-mail adressers korrekte syntax.
 
 int pFør = 0, pEfter = 0, snabelA = 0;
 
 // check at 1. og sidste karakter er bogstaver
 if (enStreng.charAt(0) < 'a' || enStreng.charAt(0) > 'z' ||
 enStreng.charAt(enStreng.length() -1) < 'a' ||
 enStreng.charAt(enStreng.length() -1) > 'z')
 return false;
 
 for (int i = 0; i < enStreng.length(); i++)
 {   //check bogstav, snabel-a eller punktum
 if (!(erEMailChar(enStreng.charAt(i))))
 return false;
 //tæl snabel-a og check at næste karakter ikke er punktum
 if (enStreng.charAt(i) == '@')
 {
 snabelA++;
 if (enStreng.charAt(i+1) == '.')
 return false;
 }
 //tæl punktum før og efter snabel-a og check at næste karakter
 //ikke er punktum eller snabel-a
 if (enStreng.charAt(i) == '.')
 {
 if (enStreng.charAt(i+1) == '.' || enStreng.charAt(i+1) == '@')
 return false;
 if (snabelA == 0)
 pFør++;   else pEfter++;
 }
 }
 
 //check mindst et punktum før og efter snabel-a og eet snabel-a
 if (pFør == 0 || pEfter == 0 || snabelA != 1)
 return false;
 
 //check landekode til sidst
 int pos = 0, punktummer = 0;
 String   landeKode = "";
 String[] landeKodeTabel = {"dk","de","uk","us"};
 boolean  fundet = false;
 
 for (;punktummer < pFør + pEfter; pos++)
 if (enStreng.charAt(pos) == '.')
 punktummer++;
 for (;pos < enStreng.length();pos++)
 landeKode = landeKode + enStreng.charAt(pos);
 for (int i = 0; i < landeKodeTabel.length && !fundet; i++)
 if (landeKode.compareTo(landeKodeTabel[i]) == 0)
 fundet = true;
 if (!fundet)
 return false;
 
 return true;
 }
 
 public static boolean eMailAlt(String enStreng)
 {
 // Metoden er ganske uautoriseret og overholder IKKE standarden for
 // e-mail adressers korrekte syntax. Formålet er at vise fordelen
 // ved at anvende StringTokenizer (i forhold til forrige metode)
 
 StringTokenizer enST = new StringTokenizer(enStreng,"@");
 
 if (enST.countTokens() == 1)
 return false; // intet snabel-a
 
 enST = new StringTokenizer(enStreng,".@");
 
 int antal = enST.countTokens();
 String token;
 
 if (enST.superfluousDel())
 return false;
 
 if (antal < 3)
 return false;
 
 for (int i = 0; i < antal-1; i++)
 {
 token = enST.nextToken();
 if (token.length() < 2)
 return false;
 for (int j = 0; j < token.length(); j++)
 if (!erEMailChar(token.charAt(j)))
 return false;
 }
 
 String[] landeKodeTabel = {"dk","de","uk","us"};
 boolean  fundet = false;
 token = enST.nextToken();
 
 for (int i = 0; i < landeKodeTabel.length && !fundet; i++)
 if (token.compareTo(landeKodeTabel[i]) == 0)
 fundet = true;
 if (!fundet)
 return false;
 
 return true;
 
 }
 
 }
 -------------------------End of class----------------------------
 
 Mvh Xor
 
 
 |