screamfine: Backslash in einem String ...

Hallo!

Ich möchte folgende Zeichenkette so aufsplitten, dass ich den Dateinamen als Ergebnis bekomme:

var test = "C:\test\test\test\test.txt";

1.) Habt ihr da ne schnelle Lösung ...
2.) Wie kann man den Backslash angeben? "//" funzt nicht, "/" funzt erst recht nicht ...

Bitte um Hilfe !

  1. Hoi,

    Ich möchte folgende Zeichenkette so aufsplitten, dass ich den
    Dateinamen als Ergebnis bekomme:

    var test = "C:\test\test\test\test.txt";

    1.) Habt ihr da ne schnelle Lösung ...

    var pieces = test.split("\");
    alert("Laufwerk: " + pieces[0] + ", Datei: " + pieces[pieces.length-1]);

    2.) Wie kann man den Backslash angeben? "//" funzt nicht, "/" funzt
    erst recht nicht ...

    SELFHTML lesen. Einen Backslash escaped man mit einem Backslash ('\').

    Gruesse,
     CK

    1. DANKE!!! Aber ...

      Warum geht dann das hier bei mir nicht:

      <script>

      var Begriff = "C:\test\datei\ordner\irgendwas.txt";
      alert(Begriff.lastIndexOf("\"));

      </script>

      1. Hoi,

        Warum geht dann das hier bei mir nicht:

        <script>

        var Begriff = "C:\test\datei\ordner\irgendwas.txt";
        alert(Begriff.lastIndexOf("\"));

        </script>

        Weil du die Backslashes in 'Begriff' auch escapen musst:

        var Begriff = "C:\test\datei\ordner\irgendwas.txt";
        alert(Begriff.lastIndexOf("\"));

        Aus deinem anderen Posting:

        Laufwerk: C: est est est est est2323.txt, Datei: C: est est est est est2323.txt

        Hast du die Backslashes in der Variablen korrekt escaped?

        Gruesse,
         CK

        1. var Begriff = "C:\test\datei\ordner\irgendwas.txt";
          alert(Begriff.lastIndexOf("\"));

          Das Problem ist nur, dass ich die Variable 'Begriff' mit dem Inhalt C:\test\test\test\test.txt nicht ändern kann (ist festgelegt!!! die daten kommen nun mal so (Benutzer wählt lokale textdatei aus)).

          Ich hab auch schon überlegt, dem Problem so aus dem Weg zu gehen, indem ich die einfachen '' durch '\' ersetze - aber das geht ja logischerweise dann auch nicht (wen Du weißt was ich meine).

          Es scheint wohl so, als wäre es nicht möglich diese Operation so durchzuführen.

          Aber was habe ich dann für eine Möglichkeit????

          Ich hab ein INPUT-Feld (file), wo der Benutzer die gewünschte .txt- auswählen tut. So, dann steht z.Bsp. folgendes im INPUT-Feld:

          C:\test\test\ordner\irgendwas\lala.txt

          Diesen value möchte ich nun in ein anderes INPUT-Type Feld übergeben (event. mittels onChange), allerdings möchte ich nur den Dateinamen (in diesem Fall 'lala.txt') in diesem INPUT-Feld dann stehen haben...

          Weißt Du ne andere Lösung ?????

          Danke schon mal für Deine aufopferungsvolle Hilfe !!!

          1. Hoi,

            var Begriff = "C:\test\datei\ordner\irgendwas.txt";
            alert(Begriff.lastIndexOf("\"));

            Das Problem ist nur, dass ich die Variable 'Begriff' mit dem
            Inhalt C:\test\test\test\test.txt nicht ändern kann (ist
            festgelegt!!! die daten kommen nun mal so (Benutzer wählt lokale
            textdatei aus)).

            Wenn du das nicht als String definierst, musst du das auch nicht
            tun. Das '\' ist nur, um dem Interpreter innerhalb eines Strings zu
            zeigen, 'hier meine ich den ""'. Wenn du Usereingaben bekommst,
            musst du sie natuerlich auch nicht escapen.

            Ich hab auch schon überlegt, dem Problem so aus dem Weg zu gehen,
            indem ich die einfachen '' durch '\' ersetze - aber das geht ja
            logischerweise dann auch nicht (wen Du weißt was ich meine).

            Noe. Und ich glaube, du hast den Unterschied von '\' und '' noch
            nicht verstanden.
            Wenn du einer Variablen einen String zuweist, z. B. x = "y", dann
            musst du alle Backslashes innerhalb dieses Strings mit einem
            Backslash escapen. Bei dem folgenden Beispiel z. B.
            enthaelt x nach der Zuweisung 2 Backslashes:

            var x = "\\";

            Die externe Representation von "\\" wird intern umgesetzt zu dem
            String '\'.

            Es scheint wohl so, als wäre es nicht möglich diese Operation so
            durchzuführen.

            Natuerlich ist es das.

            Ich hab ein INPUT-Feld (file), wo der Benutzer die
            gewünschte .txt- auswählen tut. So, dann steht z.Bsp. folgendes
            im INPUT-Feld:

            C:\test\test\ordner\irgendwas\lala.txt

            Diesen value möchte ich nun in ein anderes INPUT-Type Feld
            übergeben (event. mittels onChange), allerdings möchte ich nur
            den Dateinamen (in diesem Fall 'lala.txt') in diesem INPUT-Feld
            dann stehen haben...

            Weißt Du ne andere Lösung ?????

            Die habe ich bereits gepostet.

            Danke schon mal für Deine aufopferungsvolle Hilfe !!!

            Lieber waere es mir, wenn du dir die entsprechenden Artikel in
            SELFHTML nochmal anschauen wuerdest.

            Gruesse,
             CK

            1. Hallo!

              Ich hab's endlich geblickt!!! Ja, das funzt tatsächlich!!! Mir war einfach nicht klar, dass es ein Unterschied zwischen bereits vorgegebenen User-Eingaben und selbst definierten Strings gibt !!!!

              DANKE!!!

          2. Hi,

            Das Problem ist nur, dass ich die Variable 'Begriff' mit dem Inhalt C:\test\test\test\test.txt nicht ändern kann (ist festgelegt!!! die daten kommen nun mal so (Benutzer wählt lokale textdatei aus)).

            Kannst Du nicht als Zwischenschritt mit Begriff = Begriff.replace(...) die einzelnen \ mit \ ersetzen?

            Gruss, Mel

    2. Bei Deinem Script kommt als Ergebnis das hier raus:

      Laufwerk: C: est est est est est2323.txt, Datei: C: est est est est est2323.txt

      Häh???