PaXy: String in variabler speichern

Ich habe einen String der Form C:\Programme. Den möchte ich JavaScript in einer Variablen speichern. Ich habe dazu

var variable = "C:\Programme";

gemacht. Allerdings wird in der Variablen nur "C:Programme" gespeichert. Das "" wird nicht gespeichert. Und es muss auch ein "" sein. Ein "/" würde zwar gespeichert werden, das bringt mir aber nichts. Als was für ein Typ muss ich das deklarieren damit das richtig gespeichert wird?

  1. Hallo,

    var variable = "C:\Programme";

    das ist falsch. Der Backslash ist das Escape-Zeichen für Sonderzeichen (wie z.B. "\n"). Mit dem Großbuchstaben P ist aber kein Sonderzeichen definiert, also wird der vorangestellte Backslash ignoriert.
    Willst du einen Backslash real als Zeichen im String haben, musst du ihn selbst escapen - im Klartext: um einen echten Backslash zu haben, musst du ihn doppelt notieren:

    var variable = "C:\Programme";

    Der erste Backslash sagt dem Interpreter: Achtung, Sonderzeichen. Der zweite sagt dann: Und das Sonderzeichen ist ein Backslash. ;-)

    Ciao,
     Martin

    --
    In Ägypten haben früher 150000 Leute 35 Jahre lang an einer Pyramide gearbeitet. Aber bei uns arbeiten doppelt so viele Leute doppelt so lange allein an der Baugenehmigung.
      (Dieter Nuhr, deutscher Kabarettist)
    1. Hi,

      var variable = "C:\Programme";
      das ist falsch.

      es ist falsch, dass das falsch ist.

      Der Backslash ist das Escape-Zeichen für Sonderzeichen (wie z.B. "\n").

      Der Backslash ist das Escape-Zeichen. Mehr nicht.

      Mit dem Großbuchstaben P ist aber kein Sonderzeichen definiert, also wird der vorangestellte Backslash ignoriert.

      Nicht ganz. Die Demaskierung von '\P' führt zu 'P', weil '\P' keine besondere Bedeutung hat. Von "ignorieren" würde ich da nicht sprechen; ich gebe allerdings zu, dass das ein bisschen auch eine philosophische Frage ist.

      var variable = "C:\Programme";
      Der erste Backslash sagt dem Interpreter: Achtung, Sonderzeichen. Der zweite sagt dann: Und das Sonderzeichen ist ein Backslash. ;-)

      Jau, das kann man so stehen lassen :-)

      Cheatah

      --
      X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
      1. Hi Cheatah,

        var variable = "C:\Programme";
        das ist falsch.
        es ist falsch, dass das falsch ist.

        Bei der gegebenen Aufgabenstellung, dass der OP den String "C:\Programme" mit dem Backslash als Windows-typischem Verzeichnistrenner in seiner Variablen haben möchte, ist die Aussage, es sei falsch, dass das falsch ist, falsch.

        Doppelte oder gar dreifache Verneinung kriege ich mit etwas Konzentration noch hin. Aber ich gebe zu, es wird anspruchsvoll.  :-)
        "Nobody ain't gonna blame you for nothin'."
          (Quelle unbekannt)

        Ciao,
         Martin

        --
        Wenn alle das täten, wass sie mich können,
        käme ich gar nicht mehr zum Sitzen.
        1. Hallo Martin,

          Doppelte oder gar dreifache Verneinung kriege ich mit etwas Konzentration noch hin. Aber ich gebe zu, es wird anspruchsvoll.  :-)
          "Nobody ain't gonna blame you for nothin'."
            (Quelle unbekannt)

          Das klassische Beispiel in der englischen Linguistik ist:

          "It ain't no cat can't get in no coop" übersetzbar ins Bairische mit: "S'gibt koa Katz net, die woa in koan Hüanastoi net neikimmt"

          http://itre.cis.upenn.edu/~myl/languagelog/archives/003392.html

          Gruß Gernot

        2. Hi,

          das ist falsch.
          es ist falsch, dass das falsch ist.
          Bei der gegebenen Aufgabenstellung [...] ist die Aussage, es sei falsch, dass das falsch ist, falsch.

          der Mangel an Richtigkeit der Behauptung, es sei falsch, dass es falsch sei, falsch zu sein, glänzt durch ein erhebliches Fehlen an Nichtexistenz der unvorhandenen Korrektheit.

          Doppelte oder gar dreifache Verneinung kriege ich mit etwas Konzentration noch hin. Aber ich gebe zu, es wird anspruchsvoll.  :-)

          Nie nicht ;-) Habe ich Dich jetzt im vorangegangenen Absatz eigentlich bestätigt oder dementiert[1] ...?

          Cheatah

          [1] Oder demontiert? Wer weiß das schon? *g*

          --
          X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
          X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
          1. Hallo Cheatah!

            Nie nicht ;-) Habe ich Dich jetzt im vorangegangenen Absatz eigentlich bestätigt oder dementiert[1] ...?

            Du hast nur Deine Aussage zementiert.

            Viele Grüße aus Frankfurt/Main,
            Patrick

            --

            _ - jenseits vom delirium - _
            <hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash>
          2. Hallo,

            der Mangel an Richtigkeit der Behauptung, es sei falsch, dass es falsch sei, falsch zu sein, glänzt durch ein erhebliches Fehlen an Nichtexistenz der unvorhandenen Korrektheit.

            *** CRITICAL ERROR: Semantics stack overflow in language module german.lng ***

            Nie nicht ;-) Habe ich Dich jetzt im vorangegangenen Absatz eigentlich bestätigt oder dementiert[1] ...?

            Oder desorientiert?
            Wie auch immer, es wird schon stimmen, was richtig ist. Zu weitergehenden Zugeständnissen ist german.lng im Recovery Mode nicht fähig.   ;-)

            So long,
             Martin

            --
            Bitte komme jemand mit einem *g* zum Wochenende, damit nicht über mich gelacht wird.
              (Gunnar Bittersmann)
    2. Das Problem ist, dass ich der variablen eine wert aus einer jsp Datei übergebe. Ich habe also keinen einfluss ob dort "\" oder "" steht. In der jsp wird der Pfad automatisch generiert und dann der javaScript datei übergeben.

      Gibt es keine Möglichkeit das einfach so zu speichern wie es übergeben wird, ohne das javaScript da irgendwas besonderes mit macht?

      1. Gibt es keine Möglichkeit das einfach so zu speichern wie es übergeben wird, ohne das javaScript da irgendwas besonderes mit macht?

        Nein, du musst die Regeln befolgen, wie in jeder anderen Programmiersprache auch: JS kennt keine Stringbegrenzer in denen Maskierungen nicht ausgeführt werden.

        Struppi.

        --
        Javascript ist toll (Perl auch!)
      2. Hi,

        Das Problem ist, dass ich der variablen eine wert aus einer jsp Datei übergebe.

        dann musst Du das Problem dort lösen. Du scheinst zu denken, dass Javascript den \ aus der Variablen löscht. Wenn ein \ aber erst einmal in einer Variablen ist, dann bleibt er auch drin. Die Maskierung ist nur erforderlich, um ihn dort hinein zu bekommen.

        freundliche Grüße
        Ingo