Suche nach Punkten in Strings
Wyden Silvan
- javascript
0 molily
0 Struppi
0 Gunnar Bittersmann
Hallo zusammen
Mein Problem ist, dass ich einen String habe der irgend ein Dateiname ist. Z.Bsp. 'test.jpg'
Nun möchte ich die Dateiendung '.jpg' entfernen. Das Problem ist aber, dass die Dateiendung beliebig sein kann (.html, .js, .pdf,..). Deshalb ist die einzige Lösung nach dem 'Punkt' im String zu suchen.
Doch das will irgendwie nicht hinauen. Was ich probiert habe:
pos = test.search('.');
Doch das gibt immer nur 0 zurück! Danke für jegliche Hilfe!
Gruss
Silvan Wyden
Hallo,
pos = test.search('.');
Doch das gibt immer nur 0 zurück!
Mal nachlesen, was die Methode search() so macht:
http://de.selfhtml.org/javascript/objekte/string.htm#search
Erwartet also einen regulären Ausdruck und gibt die Position des Treffers zurück.
Wenn du den String "." übergibst, wird der in einen regulären Ausdruck umgewandelt. In einem solchen hat das Zeichen ».« eine besondere Bedeutung, nämlich, siehe Link, ein beliebiges Zeichen an einer bestimmten Stelle.
Also ist klar, warum immer 0 zurückgegeben wird, weil der Ausdruck bereits auf das erste Zeichen im String passt.
Wenn du die Position eines Zeichens finden willst, brauchst du search() nicht (ginge zur Not auch, dann müsste der reguläre Ausdruck aber (./ lauten). Nimm lieber indexOf. Das Ergebnis verwendest du dann für substring().
Mathias
Danke für die schnelle Hilfe! Hat mir sehr geholfen!
Gruss
Silvan
Mein Problem ist, dass ich einen String habe der irgend ein Dateiname ist. Z.Bsp. 'test.jpg'
Nun möchte ich die Dateiendung '.jpg' entfernen. Das Problem ist aber, dass die Dateiendung beliebig sein kann (.html, .js, .pdf,..). Deshalb ist die einzige Lösung nach dem 'Punkt' im String zu suchen.
Doch das will irgendwie nicht hinauen. Was ich probiert habe:
Was hälst du von lastIndexOf()?
pos = test.search('.');
search erwartet einen regulären Ausdruck, keinen String
Struppi.
Hello out there!
Nun möchte ich die Dateiendung '.jpg' entfernen.
Wenn sicher ist, dass außer dem einen '.' keine weiteren im Dateinamen vorkommen (also nicht 'foo.bar.jpg'), bietet sich auch split() an.
Ich würde mich aber nicht darauf verlassen. Selbst wenn das heute der Fall ist, könnte morgen eine Datei mit weiterm '.' dazukommen.
See ya up the road,
Gunnar