/ Forside/ Teknologi / Udvikling / Java / Tip
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Godt igang med validering af data.
xor har modtaget -10 point for dette tip
Fra : xor
Vist : 1604 gange

Dato : 11-05-03 13:26

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

 
 
Bedømmelse

Fra : dk


Dato : 11-05-03 13:38



Bedømmelse

Fra : swarn


Dato : 11-05-03 14:26



Bedømmelse

Fra : Fnollerpige


Dato : 11-05-03 16:15



Bedømmelse

Fra : ram2


Dato : 11-05-03 18:17



Bedømmelse

Fra : briani


Dato : 11-05-03 18:58



Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke lave en bedømmelse til dette tip.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408915
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste