Eine Formularfeldeingabe mit substring rückwarts einlesen
Jan
- javascript
Ich habe ein Formular und dazu ein Check-Programm geschrieben. Nun möchte ich bei einem Feld die Endung prüfen.
Wie ich mit substring zB den 2 bis 7 Buchstaben auslesen kann, weiß ich. Aber ich möchte eben vom letzten bis zum viertletzten lesen.
In Perl wüsste ich es, aber das funktioniert in JavaScript nicht.
Weiß jemand eine Lösung?
Gruß, Jan
Ich habe ein Formular und dazu ein Check-Programm geschrieben. Nun möchte ich bei einem Feld die Endung prüfen.
Wie ich mit substring zB den 2 bis 7 Buchstaben auslesen kann, weiß ich. Aber ich möchte eben vom letzten bis zum viertletzten lesen.
In Perl wüsste ich es, aber das funktioniert in JavaScript nicht.
Weiß jemand eine Lösung?Gruß, Jan
hallo jan,
aus nachsicht daß das js-forum (javascript.seite.net) momentan nicht funktioniert hier die kurze fassung :
txt="bild.jpgkktp";
txt.slice(txt.lastIndexOf(".")); (ergibt jpgkktp);
übrigends gibts in der selfhtml >die dokumentation< eine suuuuuper js-abteilung mit nachschlagewert... äh... werk.
good luck
stw
Ich habe ein Formular und dazu ein Check-Programm geschrieben. Nun möchte ich bei einem Feld die Endung prüfen.
Wie ich mit substring zB den 2 bis 7 Buchstaben auslesen kann, weiß ich. Aber ich möchte eben vom letzten bis zum viertletzten lesen.
In Perl wüsste ich es, aber das funktioniert in JavaScript nicht.
Weiß jemand eine Lösung?Gruß, Jan
hallo jan,
aus nachsicht daß das js-forum (javascript.seite.net) momentan nicht funktioniert hier die kurze fassung :
txt="bild.jpgkktp";
txt.slice(txt.lastIndexOf(".")); (ergibt jpgkktp);
übrigends gibts in der selfhtml >die dokumentation< eine suuuuuper js-abteilung mit nachschlagewert... äh... werk.
good luck
stw
Hallo stw!
Leider funktioniert das nicht!
Aber trotzdem danke!
Gruß, Jan
hallo jan,
Hallo stw!
Leider funktioniert das nicht!
Aber trotzdem danke!
Gruß, Jan
<
hmmmm..., fragt sich nur was, vielleicht solltest du deine frage neu formulieren.
zb. ist es wichtig rückwerts zu lesen und
ist es sehr wichtig nur die letzen 4 zeichen zu lesen was in bezug
auf endung nicht ganz paßt.
dabei ist es vor allem wichtig zu wissen wie die funktionen arbeiten und das zum beispiel substring auch nicht rückwerts lesen kann da die parameter intern zugeordnet werden also kleinster wert = start und größter wert = ende auch wenn der große wert als erster funktionsparameter angegeben wird.
Die substring-Methode verwendet den niedrigeren der beiden Werte von Start und Ende als Ausgangsposition für die Teilzeichenfolge. Beispiel: strvar.substring(0, 3) und strvar.substring(3, 0) liefern in beiden Fällen dieselbe Teilzeichenfolge.
<
somit ist dann ein txt.substring( txt.length, txt.length - 4 ) nicht daß was du erwartest aber dazu sollte man sich die funktions-dokus einverleiben.
wobei dir txt.substring( txt.length-4, txt.length ) die letzen 4 zeichen gib aber nicht rückwärts....
zudem sich die frage nach dem sinn von rückwärts stellt (lmth).
vielleicht erörterst du das ja mal.
und warum hilft kein
if( txt.slice( txt.lastIndexOf(".") ) == ".html" )
alert( "ist eine html - datei" );
mein tip :
die selfhtml-doku bzw. der js-teil
oder du gehts mal auf http://javascript.seite.net/index.bak.html und lädst dir die ms-js v5 dokumentation herunter. (dritte von unten)
good luck
stw
Hallo stw!
Ich hab es doch noch selber herausgefunden, das mir das nicht früher eingefallen ist???
Es war eben so, dass ich die Formularfeldeingabe prüfen wollte, ob die letzten 4 Zeichen ".jpg" sind.
zB Bei VBScrip kannst Du die Richtung angeben, von wo aus Du zählen willst - in diesem Fall 4 Zeichen von rechts.
In meinem Fall wusste ich eben nur, dass einen Substring von der viertletzten Position brauche. Mit ein bisschen Variablen-Rechnen kannst Du das ganz einfach machen.
Hier meine Lösung:
document.entry.Bildpfad.value = Bild; // Verwandle String in Variable
Bild.length = x; // Bestimme die Länge und speichere dies in x
Bild.substring(x-4,x) = Test; // Lese viertletzte bis letzte Position aus
if(Test != '.jpg'){ // Vergleiche Substring nun mit meiner Vorgabe
alert('Ihre Eingabe weist kein oder ein falsches Dateiformat auf');
}
Wenn man sich den Code nun anschaut, kommt es einem sehr logisch vor.
Eigentlich hätte ich es gleich so machen müssen. Aber das kennst Du sicher auch, man will es unbedingt eine komplizierte Variante ausprobieren, und denkt so nicht mehr über eine leichte nach. Und wenn man so etwas kleines übersehen hat, kommt man nur schwer drauf.
Gruß, Jan