NEWS
ping Objekt - regex möglich ?
-
Hallo,
die Objekte bei ping heißen ja z.B. so:
ping.0.NUC-Buero(Home).192_168_243_170In der Mitte steht also der PC und hinten die IP
Mit getState bekommt man den Wert, z.B. so.
var test1 = getState("ping.0.NUC-Buero(Home).192_168_243_170").val;Ändert sich aber nun der PC, dann wird der mittlere Teil automatisch auch geändert.
Soll heißen, meine Scripte holen mit getState nicht mehr den Wert, weil der mittlere Teil ja nicht mehr stimmt.Nun bekam ich die Idee, den mittleren Teil durch regex zu ersetzen.
Vorteil wäre, man müsste dann bei einem PC Wechsel nicht mehr sämtliche Scripte ändern.Geht das ?
@Homoran
Rainer, du bist doch ein regex Spezialist. Hast mir schon öfters geholfen.
Wäre sowas möglich ?mfg
Dieter -
@bahnuhr sagte in ping Objekt - regex möglich ?:
ping.0.NUC-Buero(Home).192_168_243_170
so?
let x = new RegExp(/ping\.0\.([a-zA-Z\(\)-]+)\.192/); let state = 'ping.0.NUC-Buero(Home).192_168_243_170'; let pcname = x.exec(state)[1]; log(pcname);
-
- Wodurch ändern sich die Objektnamen im Ping adapter ?
- Kannst du darauf Triggern ?
- Wenn ja, Kannst du Dir eine Liste von Objekten bauen in denen du die IP der jeweiligen Rechner eintragen lässt (automatisch) ?
- Hast Du ggf. schon so eine Liste von Objekten mit IP Adressen ?
Wenn du so weit bist, dann kannst du den Namen der abzufragenden Objekte vor der eigentlichen Abfrage zusammen bauen - du weisst ja welchen Rechner du abfragen willst, und kannst aus der Liste die IP herauslesen, und damit den Namen des abzufragenden Objektes zusammen bauen. Keine Skript Anpassung mehr nötig.
Ansonsten solltest Du dir das Thema "Selektor" genauer anschauen - darüber kannst du dir Werte von einem (oder mehreren) Objekten holen deren Namen eine bestimmte Regel einhalten, zum Beispiel "beginn mit 'ping.0.NUC-Buero(Home)."
A.
-
Mensch klasse,
ein Kombination aus euren Antworten hab ich jetzt gebastelt.
Und zwar so:
cacheSelectorState = $("[id=ping.0.*.192*]").each(function (id) { }); let x = new RegExp(/ping\.0\.([a-zA-Z\(\)-]+)\.192/); let state = cacheSelectorState[0]; let pcname = x.exec(state)[1]; log(pcname);
Damit kann ich dann weiterarbeiten.
Super.
Nochmals Danke.