letzte Stellen eines Formularfeldes überprüfen
Jens
- javascript
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
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..
@ 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"
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*
Hallo Jens,
ich möchte gerne die letzten stellen einen formularfeldes überprüfen, also nur die letzten Stellen prüfen ob:
.txt
.zip
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
@ 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
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