Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Error/Bug
    4. Problem mit RexEx. (zu viele Objekte)

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Problem mit RexEx. (zu viele Objekte)

    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      Kamikaze last edited by

      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.

      1 Reply Last reply Reply Quote 0
      • Bluefox
        Bluefox last edited by

        new RegExp("^javascript\.0\..+\.aktivieren$");

        1 Reply Last reply Reply Quote 0
        • ruhr70
          ruhr70 last edited by

          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.

          1 Reply Last reply Reply Quote 0
          • K
            Kamikaze last edited by

            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.

            1 Reply Last reply Reply Quote 0
            • P
              pix last edited by

              https://regex101.com

              Gruß

              Pix

              Gesendet mit Tapatalk

              1 Reply Last reply Reply Quote 0
              • K
                Kamikaze last edited by

                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

                1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 last edited by

                  Versuche es mal so:

                  var trigger06 = /^javascript\.0\..*\.aktivieren$/;
                  on({id:trigger06,change:'any'}, function (obj) {
                  ...
                  }
                  
                  1 Reply Last reply Reply Quote 0
                  • K
                    Kamikaze last edited by

                    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.

                    1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 last edited by

                      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).

                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      781
                      Online

                      31.8k
                      Users

                      80.0k
                      Topics

                      1.3m
                      Posts

                      5
                      9
                      839
                      Loading More Posts
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes
                      Reply
                      • Reply as topic
                      Log in to reply
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                      The ioBroker Community 2014-2023
                      logo