Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. (OK) Frage: String alle Zeichen bis zur ersten { löschen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.8k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    893

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

(OK) Frage: String alle Zeichen bis zur ersten { löschen

Geplant Angeheftet Gesperrt Verschoben JavaScript
8 Beiträge 3 Kommentatoren 3.5k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • ruhr70R Offline
    ruhr70R Offline
    ruhr70
    schrieb am zuletzt editiert von
    #1

    Kann mir jemand kurz helfen.

    Ich bekomme einen String, der exemplarisch so aussieht:

    Infotext bla bla 4711, 0815 {hier steht der Teil, der mich interessiert (JSON)}
    

    Nun möchte ich in Node-Red per Javascript alles vor der ersten geschweiften Klammer wegschmeissen.

    Adapter: Fritzbox, Unify Circuit
    Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

    1 Antwort Letzte Antwort
    0
    • ruhr70R Offline
      ruhr70R Offline
      ruhr70
      schrieb am zuletzt editiert von
      #2

      Kleiner Nachtrag noch: Sollte eine Meldung direkt mit der geschweiften Klammer beginnen, dann soll sich am String nichts ändern.

      Adapter: Fritzbox, Unify Circuit
      Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

      1 Antwort Letzte Antwort
      0
      • P Offline
        P Offline
        pix
        schrieb am zuletzt editiert von
        #3

        Hallo,

        also du kannst erstmal nach der ersten öffnenden geschweiften Klammer im Text suchen. Der Wert von indexOf gibt dir die Position im String an.

        Dann suchst du die letzte geschweifte Klammer zu mit lastIndexOf(). Das ist die Endposition. Mit substring() kannst du den Teil zwischen diesen Positionen herauslösen und verwenden.

        quelle = 'Infotext bla bla 4711, 0815 {hier steht der Teil, der mich interessiert (JSON)}';
        pos_klammer_auf = quelle.indexOf('{');
        pos_klammer_zu = quelle.lastIndexOf('}');
        ergebnis = quelle.substring(pos_klammer_auf, pos_klammer_zu);
        
        

        Das ist eine sehr einfache Art. Wenn du dich einlesen willst, schau auch mal nach subst(),Slice(),split() zB http://wiki.selfhtml.org/wiki/JavaScript/Objekte/String nach.

        Gruß

        Pix

        PS: Das funktioniert natürlich nur, wenn es dir auf die erte und letzte Klammer ankommt (nur ein Klammernpaar vorkommt). indexOf sucht immer das erste Vorkommen, lastIndexOf immer das Letzte.

        ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

        1 Antwort Letzte Antwort
        0
        • ruhr70R Offline
          ruhr70R Offline
          ruhr70
          schrieb am zuletzt editiert von
          #4

          Super Pix!

          Das hat funktioniert!! Danke! Danke!

          Dass das in Javascript so einfach geht.

          Bei der letzten Position hat es noch ein +1 gebraucht.

           ergebnis = quelle.substring(pos_klammer_auf, pos_klammer_zu+1);
          

          Danke Dir noch einmal.

          Jetzt bekomme ich schon einmal jede Meldung im Geofence Node-red Flow mit ;-)

          Gruß

          Michael

          Adapter: Fritzbox, Unify Circuit
          Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

          1 Antwort Letzte Antwort
          0
          • BluefoxB Offline
            BluefoxB Offline
            Bluefox
            schrieb am zuletzt editiert von
            #5

            Sollte auch so gehen:

            var quelle = 'Infotext bla bla 4711, 0815 {hier steht der Teil, der mich interessiert (JSON)}';
            var match = quelle.match(/{(.*)}/);// Regex
            var ergebnis = match ? match[0] : null;
            
            
            1 Antwort Letzte Antwort
            0
            • ruhr70R Offline
              ruhr70R Offline
              ruhr70
              schrieb am zuletzt editiert von
              #6

              @Bluefox:

              Sollte auch so gehen:

              var quelle = 'Infotext bla bla 4711, 0815 {hier steht der Teil, der mich interessiert (JSON)}';
              var match = quelle.match(/{(.*)}/);// Regex
              var ergebnis = match ? match[0] : null;
              
              ```` `  
              

              Danke! Ein schönes Beispiel zum lernen ;-)

              ich verstehe weder die erste, noch die zweite Zeile.

              Werde mir aber Mühe geben, dass ich es am Ende begreife.

              Auch wenn ich oben schon zum Ziel gekommen bin, bin ich für so Beispiel und andere Herangehensweisen einfach dankbar!

              Adapter: Fritzbox, Unify Circuit
              Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

              1 Antwort Letzte Antwort
              0
              • P Offline
                P Offline
                pix
                schrieb am zuletzt editiert von
                #7

                @ruhr70:

                @Bluefox:

                Sollte auch so gehen:

                var quelle = 'Infotext bla bla 4711, 0815 {hier steht der Teil, der mich interessiert (JSON)}';
                var match = quelle.match(/{(.*)}/);// Regex
                var ergebnis = match ? match[0] : null;
                
                ```` `  
                

                Danke! Ein schönes Beispiel zum lernen ;-)

                ich verstehe weder die erste, noch die zweite Zeile.

                Werde mir aber Mühe geben, dass ich es am Ende begreife.

                Auch wenn ich oben schon zum Ziel gekommen bin, bin ich für so Beispiel und andere Herangehensweisen einfach dankbar! `
                Ich habe auch ein wenig darber nachdenken müssen, aber es ist eigentlich ganz klar: match sucht zwischen (/ und /) eine Zeichenkette, die mit { anfängt und mit } aufhört. Dazwischen sind nur Reguläre Ausdrücke (Regular Expressions) erlaubt. Der Inhalt wird in ein Array gespeichert.

                Die letzte Zeile verstehe ich nicht ganz. Ist ja ne If-Anweisung-Kurzschreibweise. Wenn match einen Treffer hat, dann der ersten Wert aus dem Array nehmen, sonst null;

                Ich finde das auch sehr gut, wenn solche Beispiele hier gepostet werden. Dadurch kann man sich die unumgänglichen Skripte irgendwann selbst schreiben. Weiter so!

                Gruß

                Pix

                ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                1 Antwort Letzte Antwort
                0
                • BluefoxB Offline
                  BluefoxB Offline
                  Bluefox
                  schrieb am zuletzt editiert von
                  #8

                  ` > Ich habe auch ein wenig darber nachdenken müssen, aber es ist eigentlich ganz klar: match sucht zwischen (/ und /) eine Zeichenkette, die mit { anfängt und mit } aufhört. Dazwischen sind nur Reguläre Ausdrücke (Regular Expressions) erlaubt. Der Inhalt wird in ein Array gespeichert.

                  Die letzte Zeile verstehe ich nicht ganz. Ist ja ne If-Anweisung-Kurzschreibweise. Wenn match einen Treffer hat, dann der ersten Wert aus dem Array nehmen, sonst null;

                  Ich finde das auch sehr gut, wenn solche Beispiele hier gepostet werden. Dadurch kann man sich die unumgänglichen Skripte irgendwann selbst schreiben. Weiter so!

                  Gruß

                  Pix `
                  Absolut alles richtig beschrieben.

                  Die RegEx sind super mächtig und mittlerweile sogar schneller als (indexOf /indexOf - war selber überrascht).

                  Wenn man die versteht, dann hat man super Werkzeug zur Verfügung.

                  P.S.

                  Person1: - Ich kann fremde Gedanken lesen!

                  Person2: - Hm… ich kann fremde reguläre Ausdrücke verstehen!

                  Person1: - Ok. Du hast gewonnen.

                  1 Antwort Letzte Antwort
                  0
                  Antworten
                  • In einem neuen Thema antworten
                  Anmelden zum Antworten
                  • Älteste zuerst
                  • Neuste zuerst
                  • Meiste Stimmen


                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  741

                  Online

                  32.6k

                  Benutzer

                  82.1k

                  Themen

                  1.3m

                  Beiträge
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                  ioBroker Community 2014-2025
                  logo
                  • Anmelden

                  • Du hast noch kein Konto? Registrieren

                  • Anmelden oder registrieren, um zu suchen
                  • Erster Beitrag
                    Letzter Beitrag
                  0
                  • Home
                  • Aktuell
                  • Tags
                  • Ungelesen 0
                  • Kategorien
                  • Unreplied
                  • Beliebt
                  • GitHub
                  • Docu
                  • Hilfe