Jens: letzte Stellen eines Formularfeldes überprüfen

Hallo

ichhabe mich bei goole schon fast todgesucht ;)

ich möchte gerne die letzten stellen einen formularfeldes überprüfen, also nur die letzten Stellen prüfen ob:

.txt
.zip
.pdf
und ganz leer soll auch funktionieren

usw.

ob das im inhalt vorkommt kann man ja prüfen aber dann kann es ja sonstwo stehen und eingaben wie

blabla.zip.php

wären auch möglich was ich aber vermeiden möchte, soll also nur das funktionieren:

blabla.zip
blabla.txt
blabla.pdf
und ganz leer soll auch funktionieren

Das ganze hat den Sinn da ich das filefeld vor dem Upload überprüfen möchte, wird auf dem Server auch nochmal geprüft, soll halt nur unnötige Uploads verhindern

Hoffe jemand weiß da rat

  1. du kannst doch mit dem Befehl getLastindexOf(".") bis zum ende des strings auslesen... und dann vergleichen, obs einer deiner vorgaben entspricht, ob das Feld leer ist, kannst du ja auch vorher überprüfen... bzw.. brauchst du in dem Fall dann glaub ich gar nicht überprüfen..

    1. @  chow

      sorry bin leider nicht so der JS-Profi ;)
      PHP ist mir da lieber

      hättest du mal den code wie man das jetzt am besten hinbekommt ?
      bis jetzt nutze ich das hier was auch ohne Probleme funktioniert, jetzt fehlt mir darin nur noch dein tipp ;)

      <script type="text/javascript">
      function chkEintragsFormular()
        {
         if(document.bbform.eintrags_name.value == "")
          {
           alert("Bitte einen Namen für den Eintrag eingeben!");
           document.bbform.eintrags_name.focus();
           return false;
          }
         if(document.bbform.eintrags_kurzinfo.value == "")
          {
           alert("Bitte eine Kurzbeschreibung für den Eintrag eingeben!");
           document.bbform.eintrags_kurzinfo.focus();
           return false;
          }
         if(document.bbform.message.value == "")
          {
           alert("Bitte eine Beschreibung für den Eintrag eingeben!");
           document.bbform.message.focus();
           return false;
          }
         }
      </script>

      der name des zu überprüfenden feldes lautet "upfile"

      1. also um das zu überprüfen baust du

        var punkt=document.bbform.upfile.getLastindexOf(".";
        var ende=document.bbform.upfile.length-1;

        var endung=document.bbform.upfile.substring(punkt,ende);

        switch endung{
        case (.txt):
           tu dies;
           und das;
           break;
        case (...... usw...

        ich glaub so ist es richtig... *g*

        du kannst übrigens auch wie Maxx gesagt hat.. einfach von der length fünf abziehen und das als Variable punkt setzen... du mußt aber fünf abziehen, glaub ich, damit er die letzten vier zeichen ausliest..

        alle angaben ohne gewähr.. ich schreib immer erst und probiers dann aus um meine klammer und komma und anderen fehler zu finden.. *g*

  2. Hallo Jens,

    ich möchte gerne die letzten stellen einen formularfeldes überprüfen, also nur die letzten Stellen prüfen ob:

    .txt
    .zip
    .pdf
    und ganz leer soll auch funktionieren

    Du ermittels mit length die Anzahl der Zeichen im String. Hiervon ziehst du 4 ab (3 Zeichen plus Punkt) und vergleichst dann ab dieser Position mit der Methode substring() auf ".txt" und ".zip" und ".pdf"

    blabla.zip.php

    ist nicht möglich, da nur die letzten 4 Zeichen geprüft werden.

    HTH

    Jochen

    1. @ Jochen

      sorry da sehe ich als JS-Laie leider nicht durch, chow hat auch schon versucht einen Tipp zu geben welchen ich leider auch nicht so recht verstehe, bin halt ein JS-NOOP

      1. Hi Jens,

        sorry da sehe ich als JS-Laie leider nicht durch ... bin halt ein JS-NOOP

        das heißt n00b!

        Hier die Links zu den angesprochenen Eigenschaften und Methoden:
        http://selfhtml.teamone.de/javascript/objekte/string.htm#length
        http://selfhtml.teamone.de/javascript/objekte/string.htm#substring

        HTH

        Jochen