dedlfix: Unterschied Schreibweise?

Beitrag lesen

Tach!

Ich habe das String Literal mit einfachem Hochkomma versehen und alle überflüssingen \ entfernt. Damit der Backslash erkannt wird braucht man wirklich 4 \ bzw 3. Nur so kommt die Alert Meldung. Aber ich dachte eigentlich einer müsste doch reichen?

Nein, weil der bereits vom String-Literal vereinnahmt wird. Da kommt dann nur noch ein / beim Regex an. Du willst aber / und \ prüfen.

Vielleicht wird es etwas deutlicher, wenn wir mal den / an eine andere Stelle setzen.

RegExp('[\\:*?"<>|/]');

Zwei \\ werden benötigt, um ein einzelnes wörtliches \ in einem String-Literal darzustellen. Der Regexp bekommt daraufhin \: und denkt sich, dass das ein maskierter : ist und weg war der verbliebene \. Deswegen brauchte es doppelt so viele, damit das Stringliteral seinen Teil bekommt und für den Regex noch genügend übrigbleiben.

new RegExp('[\\\\/:*?"<>|]');
if(!fname.match(rexp))  

Aus zwei geschachtelten Kontexten mach ich mal nur einen und außerdem ist wieder der / ans Ende gewandert.

if(!fname.match(/[\\:*?"<>|\/]/))  

Zwei Backslashes braucht es, damit einer wörtlich übrigbleibt und nicht \: als maskiertes : gewertet wird. Den \ vor dem / braucht es, damit der / nicht als Regex-Ende erkannt wird.

dedlfix.

0 48

Javascript Textfeld Dateiname überprüfen

WernerK
  • javascript
  1. 0
    Felix Riesterer
    1. 0

      immer diese Schlaumeier!

      Felix Riesterer
      1. 0
        WernerK
      2. 0
        Reinhard
  2. 0
    Der Martin
    1. 0
      WernerK
      1. 0
        Auge
      2. 0
        Felix Riesterer
      3. 0
        Der Martin
        1. 0
          WernerK
  3. 0
    Reinhard
    1. 1
      1unitedpower
      1. 0
        Gunnar Bittersmann
        1. 0
          1unitedpower
        2. 0
          Felix Riesterer
          1. 0
            1unitedpower
            1. 0
              Felix Riesterer
              1. 0
                1unitedpower
                1. 0
                  Felix Riesterer
                2. 0
                  WernerK
                  1. 0
                    Matthias Apsel
                    1. 0
                      WernerK
                    2. 0

                      Ja nee is’ klar: Der Nutzer ist schuld

                      Gunnar Bittersmann
                      • markdown
                      • zu diesem forum
                      1. 0
                        Matthias Apsel
                        1. 0
                          Gunnar Bittersmann
                  2. 0
                    1unitedpower
                    1. 0
                      WernerK
    2. 0
      Gunnar Bittersmann
      1. 0
        Reinhard
  4. 0
    WernerK
    1. 0
      Gunnar Bittersmann
      • html
      • javascript
      1. 0
        WernerK
        1. 0
          Matthias Apsel
          1. 0
            WernerK
          2. 0
            Gunnar Bittersmann
  5. 0

    Unterschied Schreibweise?

    WernerK
    1. 2
      dedlfix
      1. 0
        WernerK
        1. 3
          dedlfix
          1. 0
            WernerK
            1. 0
              dedlfix
              1. 0
                WernerK
            2. 0
              Der Martin
              1. 0
                dedlfix
                1. 0
                  Der Martin
                  1. 0
                    Matthias Apsel
                    1. 0
                      Der Martin