Zusätzliche Funktionen zur Verwendung in dynamischen Variablen

In fortgeschrittenen Aktionen können Sie zusätzlich zu den auf MathJS basierenden Funktionen auch benutzerdefinierte Funktionen verwenden:

String-Funktionen

indexOf(Heuhaufen, Nadel)

Wird die "Nadel"-String in der "Heuhaufen"-String oder -Liste gefunden, gibt die Funktion ihre (auf Null basierende) Position zurück, andernfalls ergibt sie -1.

Beispiele
 indexOf("ABCD", "A") //returns 0
 indexOf("ABCD", "CD") //returns 2
 indexOf("ABCD", "E") //returns -1
 indexOf(["a","b","c"], "a") //returns 0
 indexOf(["a","b","c"], "bc") //returns -1

getIndexValue(Heuhaufen, index)

Wenn die "index"-Nummer kleiner ist als die "haystack"-Liste, gibt die Funktion den Wert an der "index"-Position zurück, andernfalls tritt ein Fehler auf.

Beispiele
 getIndexValue(["a","b","c"], 0) //returns a
 getIndexValue(["a","b","c"], 1) //returns b

substr(zeichenkette, start[, länge])

Diese Funktion gibt eine Teilzeichenkette der ursprünglichen Zeichenkette zurück, beginnend mit der nullbasierten Startposition. Wenn length angegeben ist, werden so viele Zeichen zurückgegeben, andernfalls wird der Rest der Zeichenkette zurückgegeben.

Beispiele
 substr("ABCD", 1) //returns "BCD"
 substr("ABCD", 2, 1) //returns "C"
 substr("ABCD", 5) //returns ""

slice(string, start[, end])

Diese Funktion gibt eine Teilzeichenkette der ursprünglichen Zeichenkette zurück, beginnend mit der nullbasierten Startposition. Wenn eine Endposition angegeben wird, werden alle Zeichen bis zu dem Zeichen an dieser Position zurückgegeben, aber nicht einschließlich. Andernfalls wird der Rest der Zeichenkette zurückgegeben.

Negative Positionen für Anfang oder Ende werden von der rechten Seite der Zeichenkette aus gezählt.

Beispiele
 slice("ABCD", 1) //returns "BCD"
 slice("ABCD", 0, 2) //returns "AB"
 slice("ABCD", 1, -1) //returns "BC"
 slice("ABCD", 2, 1) //returns ""

upper(string)

Diese Funktion gibt die angegebene Zeichenkette zurück, die in Großbuchstaben umgewandelt wurde.

Beispiel
upper("aBcD") //returns "ABCD"

niedriger(string)

Diese Funktion gibt die angegebene Zeichenkette zurück, konvertiert in Kleinbuchstaben.

Beispiel
lower("aBcD") //returns "abcd"

length(string)

Diese Funktion gibt die Länge der Zeichenkette zurück.

Beispiele
 length("") //returns 0
 length("ABCD") //returns 4

Logische Funktionen

gleich(Wert1, Wert2)

Diese Funktion gibt true zurück, wenn value1 und value2 der gleiche Wert und Typ sind, andernfalls false. Alternative Syntax für `Wert1 === Wert2`. (`Wert1 == Wert2` ist ein schwächerer Vergleich)

Beispiele
 equal(2, 1) //returns false
 equal(1, 1) //returns true
 equal(1, "1") //returns false (different types)

ifElse(Bedingung, valueIfTrue, valueIfFalse)

Diese Funktion prüft die angegebene Bedingung. Wenn die Bedingung wahr ist (oder truthy), wird der WertIfTrue zurückgegeben, ansonsten der WertIfFalse.

Beispiele
 ifElse(equal(1, 5), "equal", "not equal") //returns "not equal"
 ifElse(equal(2, 2), "equal", "not equal") //returns "equal"

Regex-Funktionen

match(wert, muster[, flags, groupIndex])

matchAll(wert, muster, matchIndex[, flags])

Diese Funktionen führen den Abgleich mit regulären Ausdrücken durch und prüfen, ob der angegebene "Wert" mit dem angegebenen regulären Ausdruck "Muster" übereinstimmt. 

Das optionale Argument flags ist eine Zeichenkette mit Flags für reguläre Ausdrücke mit einzelnen Buchstaben, die ein erweitertes Verhalten ermöglichen (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#advanced_searching_with_flags). Die häufigste Verwendung für ein Flag-Argument ist die Übergabe von "i" für eine Übereinstimmung ohne Berücksichtigung der Groß-/Kleinschreibung.

Hier gibt es zwei miteinander verbundene Funktionen:

  • TDie Funktion match sucht nach einer einzelnen Übereinstimmung und unterstützt eine erweiterte Verwendung mit numerischen Erfassungsgruppen, wobei das letzte Argument zur Auswahl der gewünschten Erfassungsgruppe verwendet wird (0 ist die gesamte Übereinstimmung, 1 ist die erste Erfassungsgruppe usw.).
  • Die Version matchAll unterstützt mehrere Übereinstimmungen und verwendet das Argument matchIndex zur Auswahl der gewünschten Übereinstimmung. (0 ist die erste Übereinstimmung, 1 ist die zweite Übereinstimmung usw.)

In beiden Fällen ist das Ergebnis bei einer Übereinstimmung der Inhalt der Zeichenkette oder bei Verwendung als Körper einer dynamischen booleschen Variablen true bei einer Übereinstimmung oder false bei einer Nichtübereinstimmung.

Beispiele
// Basic usage
match("abc", "b.") // returns "bc" (or true as a Dynamic Boolean Variable)
match("abc", "c.") // returns no match (or false as a Dynamic Boolean Variable)

// Advanced usage

// Case-insensitive
match("aBc", "b.", "i") // returns "Bc", since casing was ignored with the "i" flag

// Capture Groups
match("acd bce", "b(c.)", "", 1); // returns "ce" - the whole match was "bce", but the first capture group is (c.)

// Multiple matches
matchAll("acd bce", "c.", 1); // returns "ce" - "c." matches both "cd" and "ce", the last argument (and usage of matchAll) selected the second one.

Datum-Funktionen

formatDate(date[, formatString])

Nimmt ein numerisches Datum und wandelt es in ein für Menschen lesbares Format um.  Dies ist nützlich, um einem Agenten ein Datum anzuzeigen, nachdem er eine numerische Manipulation daran vorgenommen hat.

Der Wert date  wird in Millisekunden seit dem 1. Januar 1970 angegeben.

Der formatString  akzeptiert Unicode-Standard Ersetzungen.

Hinweis: Die resultierende Zeichenkette wird in der Zeitzone des Agenten angezeigt, so dass es hilfreich sein kann, die Zeitzone in die Formatzeichenkette aufzunehmen.
Beispiele
// Default formatting
formatDate(946684800000)                                      // 01/01/2000 12:00:00 am (+00:00)
 
// Custom formatting
formatDate(946684800000, "eeee, MMMM do yyyy, h:mm:ss a (z)")     // Saturday, January 1st 2000, 12:00:00 am (GMT)
formatDate(946684800000, "eeee, MMMM do yyyy, h:mm:ss a (xxxxx)") // Saturday, January 1st 2000, 12:00:00 am (+00:00)

formatDateISO(Datum)

Nimmt ein numerisches Datum und wandelt es in eine formatierte Datumszeichenfolge im ISO 8601-Format um. Dies ist nützlich, wenn Sie mit Datumskomponenten arbeiten oder das Datum an einen API-Aufruf weitergeben. 

Der Wert date wird in Millisekunden seit dem 1. Januar 1970 angegeben.

Hinweis: Die resultierende Zeichenkette wird in der Zeitzone des Agenten angezeigt.

Beispiele 
formatDateISO(946684800000)                    // 1999-12-31T19:00:00-05:00

dateToMilliseconds(date)

Nimmt einen String Datum und konvertiert ihn in eine Anzahl von Millisekunden seit dem 1. Januar 1970, für numerische Manipulation.

Es wird erwartet, dass das angegebene Datum das von Skriptvariablen verwendete Standardformat hat.

Beispiele
dateToMilliseconds("01/01/2000 12:00:00 am (+00:00)"); // 946684800000

formatDate(dateToMilliseconds({{Scripter.Customer Call Start Time}}) + 5 * 60 * 1000) // Five minutes (multiplied by 60 sec/minute and 1000 ms/sec to convert to ms) after the customer was connected

formatDuration(Dauer)

Konvertiert eine numerische Dauer in Millisekunden in ein für Menschen lesbares Format.  

Beispiel
formatDuration(5 * 1000 * 60 + 55); // "00:05:55"

durationToMilliseconds(durationString)

Wandelt eine Zeichenkette Dauer in einen numerischen Wert um.

Beispiel
durationToMilliseconds({{Scripter.Customer Call Duration}}) // How long has the customer been connected

formatDuration(5 * 1000 * 60 - durationToMilliseconds({{Scripter.Customer Call Duration}})) // Countdown until the customer has been on the line for five minutes