NEWS
JavaScript - GREP?
-
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); /* */ });
-
Du kannst regex oder String Funktionen nutzen.
String Funktionen wie lastIndexOf … und dann mit substring arbeiten ... macht keinen Spaß aber geht.
Gesendet vom Handy ...
-
Hallo Ingo, schau ich mir mal an. Mal schauen wie weit ich da komme - regex und ich waren bisher noch keine Freunde
-
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.
-
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 …