regExp und variablen im suchstatement
Tim
- javascript
hallo,
möchte folgende machen:
var myID=8;
var TextStr= 'das die id=8" oder was?';
var Ausdruck = /id="myID"/i;
Ausdruck.exec(TextStr);
alert(RegExp.$1);
und dann sollte da 8 rauskommen.
habe auch schon das probiert:
var Ausdruck = /'id="'+myID+'"'/i;
geht alles nicht, er ersetzt die variable einfach nicht...
vielen dank.
tim.
Tag Tim.
var Ausdruck = /id="myID"/i;
Ausdruck.exec(TextStr);
Erzeuge ein neues RegExp-Objekt. Der Konstruktor erwartet maximal zwei Parameter (das Suchmuster und die Flags), die beide ganz normale Strings sind. Ergor musst du nur einen Pattern-String erzeugen, die Variable übergibst du dann dem Konstruktor als ersten Parameter:
var pattern = "id="+myId;
var re = new RegExp(pattern);
var ergebnis = re.test(derText);
Die Variable "ergebnis" ist wahr, wenn der RegExp passt, ansonsten falsch.
Siechfred
Hi,
Der Konstruktor [von RegExp()] erwartet maximal zwei Parameter (das Suchmuster und die Flags)
Ist das eigentlich in SELFHTML nicht beschrieben oder nur gut versteckt?
Achso, noch eines dem OP auf den Weg: wenn Du $[1-9] benutzen möchtest, dann sollten die Abteilungen besser deutlich markiert sein (runde Klammern, wie um diesen Einschub). Es geht auch teilweise ohne, aber mit geht's immer und auch anderswo.
Vorschlag für ein Beispiel in SELFHTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>RegExp(): Konstruktorbeispiel</title>
<script type="text/javascript">
var myID="a";
var TextStr= "das die id=\"A\" oder was?";
var regex = "(id=\")(" + myID + ")(\")";
var Ausdruck = new RegExp(regex,"i");
Ausdruck.exec(TextStr);
alert("1:" + RegExp.$1 + "\n" +
"2:" + RegExp.$2 + "\n" +
"3:" + RegExp.$3);
</script>
</head>
</html>
so short
Christoph Zurnieden
Tag Christoph.
Der Konstruktor [von RegExp()] erwartet maximal zwei Parameter (das Suchmuster und die Flags)
Ist das eigentlich in SELFHTML nicht beschrieben oder nur gut versteckt?
Ersteres, und m.E. wird das RegExp-Objekt in SelfHTML recht stiefmütterlich behandelt. Aber das wird sich sicher in künftigen Versionen ändern. Bis dahin schaue ich diesbezüglich hier nach http://www.html-world.de/program/js_o_reg.php.
Siechfred
Hi,
Ist das eigentlich in SELFHTML nicht beschrieben oder nur gut versteckt?
Ersteres,
Naja, ich gebe zu: es war eine rethorische Frage. Ich habe das SELFHTML-Paket für meine Suchexperimente benutzt, ich kenne es ... äh ... recht gut ;-)
Bis dahin schaue ich diesbezüglich hier nach http://www.html-world.de/program/js_o_reg.php.
Ah, sehr schön. Danke!
so short
Christoph Zurnieden