Probleme mit substring
Jan
- javascript
0 simon carst0 Jan0 simon carst0 Jan
Hallo Leute!
Mein erstes Problem:
Ich hab für ein Formular ein Check-Programm geschrieben.
In einem Feld muss der Name einer Bilder-Datei eingegeben werden. Nur die Endung .jpg darf erlaubt sein. Zur Zeit prüfe ich nur, ob in dem Feld ".jpg" vorkommt, doch wenn jemand aus Versehen "bild.jpgg" eingibt, stimmt es so auch und das will ich nicht. Die Daten werden nämlich in eine Datenbank eingetragen und auf der Ausgabeseite wird dann das Bild dargestellt (Upload des Bildes wird per FTP gemacht).
Wie kann ich mit Substring den Wert rückwärts auslesen? Also die letzten 4 Zeichen?
Mein zweites Problem:
Ich habe im Formular ein ATS und ein EURO-Feld. Wenn ins EURO-Feld geklickt wird, erscheint der ATS-Wert in Euro umgerechnet. Das klappt alles. Doch gibt er mir zuviele Nachkommastellen zurück, mit der meine Datenbank nicht fertig wird. Ich hab versucht es mit Math.round zu lösen. Also so
function euro(){
entry.EURO.value = entry.ATS.value / 13.7603;
Math.round(entry.EURO.value);
}
Das hat nicht geklappt, da hab ich das Runden in die obere Rechnung miteingebaut (entry.EURO.value = Math.round(entry.ATS.value / 13.7603);). Auch das hat nicht funktioniert. Was hab ich falsch gemacht?
Gruß, Jan
tach,
zu deinem ersten problem,
ich würde sowas versuchen:
<script language="JavaScript">
function bla(){
URL = "c:...\bild.jpg" // hier die url des bildes einlesen
var bild_endung = URL.substr(URL.lastIndexOf("."),5);
if (bild_endung == ".jpg" bild_endung == ".jpeg") //endung ok
//weitere anweisung
}
</script>
zu deinem zweiten, ich sehe da jetzt grad auch keinen fehler, höchstens, dass du vielleicht noch ein document. davor setzten solltest.
viel spass
c ya
sim
Danke für die schnelle Antwort!
Leider hat das mit der Endung nicht geklappt.
Die Rundung funktioniert jetzt, seit ich das document dazugeschrieben habe, doch leider rundet er die Kommastellen komplett aus. Weißt Du wie man diese Funktion bei 2 Stellen stoppen kann?
Gruß, Jan
tach,
ja wegen dem runden auf 2 nachkommastellen, musst du ein kleiner trick anwenden.
einfach zuerst die zahl mit 100 multiplizieren, und dann auf eine ganze zahl runden, und dann wieder durch 100 dividieren.
also
var ausgabe = Math.round(document.entry.EURO.value*100)/100;
c ya
sim
tach,
ja wegen dem runden auf 2 nachkommastellen, musst du ein kleiner trick anwenden.
einfach zuerst die zahl mit 100 multiplizieren, und dann auf eine ganze zahl runden, und dann wieder durch 100 dividieren.
also
var ausgabe = Math.round(document.entry.EURO.value*100)/100;
c ya
sim
Danke, werds gleich noch ausprobieren.
Achja, das mit dem Substring hab ich selber gelöst. Mensch, ich bin echt blöd.
Es ist ja so, ich kann zwar nicht einfach letzte bis viertletzte Position angeben. Aber ich kann die Länge des ganzen Strings bestimmen, in in x speichern und dann einfach von Position x-4 bis x ausgeben :o)
So hab ich es nun gemacht.
Inhalt = document.entry.Bildpfad.value // Inhalt des Formularfeldes, indem der Dateiname geschrieben wird.
x = Inhalt.length // Bestimme die Länge von Inhalt und speichere sie in x ab.
Test = Inhalt.substring(x-4,x) // Auslesen des Substrings
if(Test != '.jpg'){
alert('Es wurde entweder ein falsches oder kein Dateiformat angegeben');
}
So geht es nun wunderbar :o)
Gruß, Jan