動的変数で使用する追加の関数

高度なアクションでは、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 the matchIndex 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