Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. JavaScript - GREP?

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    JavaScript - GREP?

    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      darkiop Most Active last edited by

      Guten Morgen, ich speichere in einer Variable folgendes:

      Dies möchte ich nun weiter verarbeiten und beispielsweise nur das letzte "jsobj['val']='1';" bzw. dessen Wert von 1 in der Variablen haben. Die Daten hole ich mittels cheerioReq.

      Wie kann ich das gewünschte mittels JS greppen?

      Danke und einen schönen Sonntag!

      Grüße Thorsten

      cheerioReq('http://' + adapter.config.isgIP, (err, $) => {
      
        var value = $('script').last();
        if (debugging === true) adapter.log.info('ScriptParse: ' + value);
      
        /*
      
        */
      
      });
      
      
      1 Reply Last reply Reply Quote 0
      • apollon77
        apollon77 last edited by

        Du kannst regex oder String Funktionen nutzen.

        String Funktionen wie lastIndexOf … und dann mit substring arbeiten ... macht keinen Spaß aber geht.

        Gesendet vom Handy ...

        1 Reply Last reply Reply Quote 0
        • D
          darkiop Most Active last edited by

          Hallo Ingo, schau ich mir mal an. Mal schauen wie weit ich da komme - regex und ich waren bisher noch keine Freunde 😄

          1 Reply Last reply Reply Quote 0
          • D
            darkiop Most Active last edited by

            So, hab da jetzt nach einigen Versuchen doch was hinbekommen, aber ich denke schön ist wirklich anders 🙂

            var value = $('script').last().toString();
            //adapter.log.info('cherrio-req: ' + value);
            
            var replacelinebreak = value.replace(/\n|\r/g, '');
            adapter.log.info('replacelinebreak: ' + replacelinebreak);
            
            var index = replacelinebreak.indexOf("val82info").toString();
            adapter.log.info('indexof: ' + index);
            
            var start = parseFloat(index) + 25;
            adapter.log.info('start: ' + start);
            
            // Select Test
            var end = index + 50;
            var substrTest = replacelinebreak.substring(index, end);
            adapter.log.info('substringTest: ' + substrTest);
            
            var end = start + 1;
            adapter.log.info('end: ' + end);
            
            // Value
            var substr = replacelinebreak.substring(start, end);
            adapter.log.info('substring: ' + substr);
            
            

            Das Log, letzte Zeile meine Gewünschte '3':

            2018-08-12 11:37:54.513  - info: stiebel-lwz.0 replacelinebreak: 
            2018-08-12 11:37:54.514  - info: stiebel-lwz.0 indexof: 999
            2018-08-12 11:37:54.514  - info: stiebel-lwz.0 start: 1024
            2018-08-12 11:37:54.514  - info: stiebel-lwz.0 substringTest: val82info';jsobj['val']='3';jsvalues.push(jsobj);
            2018-08-12 11:37:54.515  - info: stiebel-lwz.0 end: 1025
            2018-08-12 11:37:54.515  - info: stiebel-lwz.0 substring: 3
            
            

            Jetzt hoffe ich nur das sich da nichts mehr verschiebt, habe deshalb bewusst nach 'val82info' gesucht und dann die Zeichen nach 'vorne' dazugezählt.

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

              Mit regex ist man ein bissl flexibler in Bezug auf Änderungen. Aber ist aufwändiger.

              Ich nutze immer regex101.com zum bauen/experimentieren.

              Gesendet vom Handy …

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

              Support us

              ioBroker
              Community Adapters
              Donate

              754
              Online

              31.7k
              Users

              79.8k
              Topics

              1.3m
              Posts

              2
              5
              394
              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