NEWS
Problem mit RexEx. (zu viele Objekte)
-
Hallo, ich habe ein Problem mit RegEx. Es werden Objekte aktiv, die es nicht sollen.
Es stehen folgende Objekte zur Verfügung:
javascript.0.Galaxy.aktivieren
javascript.0.Arbeitszimmer.Schlafmodus_aktivieren
javascript.0.Kinderzimmer.Schlafmodus_aktivieren
javascript.0.Raspberrypi.aktivieren
var trigger06 = new RegExp("\javascript\.0\..*\.aktivieren"); on({id:trigger06,change:'any'}, function (obj) { ... }
Erwartet habe ich: javascript.0.Galaxy.aktivieren und javascript.0.Raspberrypi.aktivieren.
Es lösen aber alle Objekte das Ereignis aus.
Wo ist der Fehler? Wenn ich einen RegEx Validator nehme, dann werden die richtigen Objekt gewählt.
Vielen Dank für eure Hilfe.
-
new RegExp("^javascript\.0\..+\.aktivieren$");
-
Ich habe Dein RegEx über einen online Validator geprüft. Bei allen vier IDs greift das RegEx.
Das Skript verhält sich also richtig und der Fehler dürfte in Deinem RegEx liegen.
[EDIT]
Oh zeitgleich… Bluefox nur schon mit der Lösung
Ich wollte mir die Lösung jetzt ansehen.
-
Das klappt prima. Wenn ihr mir noch einen brauchbaren Validator nennen würdet, dann kann ich meine weiteren Aktivitäten selbst überprüfen.
Der von mir verwendete bringt scheinbar keine brauchbaren Ergebnisse.
Vielen Dank.
-
-
Also ich habe es noch einmal getestet:
var trigger06 = new RegExp("\javascript.0..*.aktivieren"); löst alle Objekte aus.
var trigger06 = new RegExp("$javascript\.0\..+\.aktivieren^"); löst kein Objekt aus.
Irgendwie bin ich ratlos.
Also Bedingung ist:
javascript.0.Galaxy.aktivieren soll ausgelöst werden
javascript.0.Arbeitszimmer.Schlafmodus_aktivieren soll nicht ausgelöst werden.
javascript.0.Kinderzimmer.Schlafmodus_aktivieren soll nicht ausgelöst werden
javascript.0.Raspberrypi.aktivieren soll ausgelöst werden
-
Versuche es mal so:
var trigger06 = /^javascript\.0\..*\.aktivieren$/; on({id:trigger06,change:'any'}, function (obj) { ... }
-
Hallo paul53,
ja, das ist es und ich bin exakt auf das gleiche Ergebnis gekommen, nachdem ich mit dem Validator ein wenig herumgespielt habe.
Vielen vielen Dank. Jetzt weiss ich wie ich weiter vorgehen muss.
-
Ich würde den RegExp unabhängig von der Javascript-Instanz machen:
var trigger06 = /^javascript\..+\.aktivieren$/;
Die Version von Bluefox sollte auch funktionieren, wenn man ^ und $ austauscht (^ zum Anfang, $ an das Ende).