Jörg Kirsch: Reguläre Ausdrücke & Switch/Case

Moin Moin aus Oldenburg,

ich schlage mich mit folgendem Problem herum:

Ich möchte ein .html-File mit Parametern aufrufen. Dabei ergeben sich
Probleme mit der Parameterauswertung im Switch/Case-Konstrukt.

Das Ganze sieht dann so aus:

var Ausdruck = /[a-z].*/;
var Parameter = Ausdruck.exec(window.location.search);
switch (Parameter)
{
   case 'a': ...; break;
   ...
}

Aufruf mit Parameter, z. B. test.htm?a.

Als Ergebnis bekomme ich nur die Default-Einstellung aus der
Case-Abfrage heraus. Was mache ich falsch?

Jörg Kirsch

  1. Hallo Jörg,

    Versuch es mal so:

    var Ausdruck = /([a-z].*)/;
    Ausdruck.exec(window.location.search);
    var Parameter = RegExp.$1;
    switch (Parameter)
    {
       case 'a': ...; break;
       ...
    }

    Klappt das?

    viele Gruesse
      Stefan Muenz

    1. Leider nicht. Ich gebe mal ein Beispiel ein:
      <!--
      <html><head><title>HTML-Parameterauswertung mittels RegExp & Switch/Case (Navigator 4.06)</title>
      <script language="JavaScript">
        var pattern = /[a-z].*/;
        function Auswerten(txt)  /* Wo ist hier der Fehler? */
        {
         var p;
         pattern.exec(txt);
         var a=RegExp.$1;
         switch (a)  
         {
          case 'a': p = 'a'; break;
          case 'b': p = 'b'; break;
          case 'c': p = 'c'; break;
          default: p = 'default'; break;
         }
         return p;
        }
      </script>
      <basefont=helvetica,arial> <!-- Läuft nur unter IE? -->
      </head>
      <body> <!--  Aufruf: Test.html?a    -->
      <script language=javascript>
        with (document)
        {
         var url = window.location;
         pattern.exec(url.search);
         var b=RegExp.$1;
         if (b == '') b = 'nix';
         writeln ('<p>Aktuelle URL:         ',url);
         writeln ('<P>Parameter:                ',url.search);
         writeln ('<p>RegExp:                   ',pattern);  
         writeln ('<p>Parameter isoliert:       ',b);
         writeln ('<p>Ergebnis "\Auswerten()": ',Auswerten(url.search));
        }
      </script>
      <p><a href=mailto:kirsch@nwn.de>eMail: kirsch@nwn.de</a>
      </body></html>
      -->