Wyden Silvan: Suche nach Punkten in Strings

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

  1. 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

    1. Danke für die schnelle Hilfe! Hat mir sehr geholfen!

      Gruss

      Silvan

  2. 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.

  3. 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

    --
    „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)