動的変数で使用する追加の関数
高度なアクションでは、MathJSに基づく関数に加えてカスタム関数を使うことができます。
文字列関数
indexOf(干し草の山、針)
もし、「針」の文字列が「干し草の山」の文字列またはリストの中に見つかれば、その(0基準の)位置を返し、そうでなければ、-1と評価されます。
例:
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(干し草の山、インデックス)
index」の数値が「haystack」のリストより小さい場合は、「index」の位置にある値を返し、それ以外の場合はエラーとなります。
例:
getIndexValue(["a","b","c"], 0) //returns a getIndexValue(["a","b","c"], 1) //returns b
substr(string、start [、length])
この関数は、ゼロから始まる開始位置から、元の文字列の部分文字列を返します。 長さが指定されている場合、多くの文字を返し、それ以外の場合、文字列の残りの部分を返します。
例:
substr("ABCD", 1) //returns "BCD" substr("ABCD", 2, 1) //returns "C" substr("ABCD", 5) //returns ""
slice(string、start [、end])
この関数は、ゼロから始まる開始位置から、元の文字列の部分文字列を返します。 終了位置が指定されている場合は、までのすべての文字が、ないを含む、その位置にある文字を返します。 それ以外の場合、文字列の残りの部分を返します。
開始位置または終了位置の負の位置は、文字列の右側から数えられます。
例:
slice("ABCD", 1) //returns "BCD" slice("ABCD", 0, 2) //returns "AB" slice("ABCD", 1, -1) //returns "BC" slice("ABCD", 2, 1) //returns ""
上(文字列)
この関数は、提供された文字列を大文字に変換して返します。
例:
upper("aBcD") //returns "ABCD"
下(文字列)
この関数は提供された文字列を小文字に変換して返します。
例:
lower("aBcD") //returns "abcd"
長さ(文字列)
この関数は文字列の長さを返します。
例:
length("") //returns 0 length("ABCD") //returns 4
論理関数
等しい(値1、値2)
この関数は、value1とvalue2が同じ値と型であればtrueを返し、そうでなければfalseを返します。 `value1 === value2`の代替構文( `value1 == value2`は弱い比較です)
例:
equal(2, 1) //returns false equal(1, 1) //returns true equal(1, "1") //returns false (different types)
ifElse(condition、valueIfTrue、valueIfFalse)
この機能は提供された条件をチェックします。 条件が真(または 真実)、valueIfTrueを返します。それ以外の場合はvalueIfFalseを返します。
例:
ifElse(equal(1, 5), "equal", "not equal") //returns "not equal" ifElse(equal(2, 2), "equal", "not equal") //returns "equal"
Regex関数
match(value, pattern[, flags, groupIndex])
matchAll(値, パターン, matchIndex[, flags])
これらの関数は、正規表現マッチングを行い、与えられた「値」が、与えられた正規表現「パターン」に一致するかどうかをテストするものである。
オプションのflags引数は、高度な動作を可能にする一文字の正規表現フラグの文字列です(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#advanced_searching_with_flags)。 フラグ引数の最も一般的な使用法は、大文字小文字を区別せずにマッチさせるために "i" を渡すことである。
ここでは、関連する2つの機能を紹介します。
- The
match
function looks for a single match and supports an advanced usage with numeric capture groups, using the last argument to select the desired capture group (0 is the whole match, 1 is the first capture group, and so on). - The
matchAll
version supports multiple matches, using thematchIndex
argument to select the desired match. (0 is the first match, 1 is the second match, and so on.)
In both cases, if there is a match the result will be the string content, or when used as the body of a dynamic Boolean variable, it will be true
if there is a match or false
if there was not a match.
例:
// 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.
日付機能
formatDate(date[, formatString])
数値で日付を受け取り、人間が読みやすい形式に変換する。 これは、日付に何らかの数値操作を行った後に、エージェントに表示するのに便利です。
The date
value is in milliseconds since January 1st 1970.
The formatString
accepts Unicode-standard substitutions.
例:
// 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(日付)
数値の日付を受け取り、ISO 8601形式のフォーマットされた日付文字列に変換する。 これは、日付コンポーネントを扱うときや、APIコールで日付を送信するときに便利です。
The date
value is in milliseconds since January 1st 1970.
注意: 結果の文字列は、エージェントのタイムゾーンになります。
例:
formatDateISO(946684800000) // 1999-12-31T19:00:00-05:00
dateToMilliseconds(date)
文字列の日付を受け取り、数値操作のために、1970年1月1日からのミリ秒数 に変換します。
提供された日付は、スクリプト変数で使用されるデフォルトのフォーマットであることが期待されます。
例:
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(duration)
DELETE関数は、ミリ秒単位の継続時間を人間が読みやすい形式に変換します。
例:
formatDuration(5 * 1000 * 60 + 55); // "00:05:55"
durationToMilliseconds(durationString)
文字列の継続時間を数値に変換します。
例:
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