Moin moin,
In dem Script von dslRaser:
on({id: 'telegram.0.communicate.request', change: 'any'}, function (obj) {
var stateval = getState('telegram.0.communicate.request').val; // Statevalue in Variable schreiben
var benutzer = stateval.substring(1,stateval.indexOf("]")); // Benutzer aus Statevalue extrahieren
var befehl = stateval.substring(stateval.indexOf("]")+1,stateval.length); // Befehl/Text aus Statevalue extrahieren
if (befehl.search(/(?=.*(\bBATTERIE\b|\bVOLL\b|\bLEER\b|\bVOLT\b)).+/ig) != -1) {
sendTo('telegram', {
user: benutzer,
text: 'Für welchen Raum möchtest du die Batterie abfragen?',
reply_markup: {
inline_keyboard: [
[{ text: 'Flur', callback_data: '%BatFlur'}],
[{ text: 'Wohnzimmer', callback_data: '%BatWohnzimmer'}],
[{ text: 'Badezimmer', callback_data: '%BatBadezimmer'}],
[{ text: 'Gästezimmer', callback_data: '%BatGaestezimmer'}],
[{ text: 'Schlafzimmer', callback_data: '%BatSchlafzimmer'}],
]
}
});
}
......
gibt es eine RegExp mommt
kann mir vielleicht jemand kurz die RegExp erklären?
/(?=.(\bBATTERIE\b|\bVOLL\b|\bLEER\b|\bVOLT\b)).+/ig*
Einiges habe ich schon selber heraus gefunden:
.* -> kein oder mehrere beliebige Zeichen
(\bBatterie\b|\bSpannung\b) -> allein stehendes Wort Batterie oder Spannung
.+ -> Ein oder mehrere beliebige Zeichen
i -> insensitiv (Klein und Großschreibung wird nicht beachtet)
g -> globale Suche
Wofür wird das ?= und das .+ benötigt ?
Da die Wörter Batterie, Voll, Leer und Volt ja alleine stehen (\bVoll\b) warum soll dann noch ein beliebiges Zeichen folgen?
Das ?= ist ja eine lookahead Anweisung aber davor steht ja nichts.
Ich hoffe Ihr könnt meinen Knoten im Kopf etwas lösen.
Danke schon mal.