Reguläre Ausdrücke & Switch/Case
Jörg Kirsch
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
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
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>
-->