应用编辑器中的表达式完整列表

Prev Next

本文包含可在 Trigger 的应用编辑器中使用的完整表达式列表。

使用表达式可让您以不同方式利用数据,或将其转换为不同形式。

NOTE

Available expressions differ between features (e.g. App Editor, Analytics Editor, Automations/Functions Editor).
To understand where each expression is available, see the full list of expressions in Tulip.

应用编辑器中的表达式

所有示例均基于应用的“完成项”。因此,例如当您使用 MAXIMUM() 或 MINIMUM() 函数时,您正在查找该应用所有完成项中某个变量的最大值或最小值。

ADD_TIME():将日期时间值按指定的数值和时间间隔单位递增。

示例:ADD_TIME(*datetime_variable,*2, 'years')

SUBTRACT_TIME():将日期时间值减去指定数值和时间间隔单位。

例如:SUBTRACT_TIME(*datetime_variable,*3, 'months')

类型转换表达式

**BADGE_ID_TO_USER()**将徽章 ID 转换为用户对象

示例:BADGE_ID_TO_USER(0000) = "John Doe"(作为用户对象)

DATETIMETOTEXT()
将日期时间值转换为易于人类阅读的文本值

示例:DATETIMETOTEXT(datetime_variable, "MMMM DD, YYYY", 'America/New_York')

这将把日期时间转换为东部标准时间,并以“2019年1月1日”这样的传统日期格式显示。

**注意:**最后一个参数(时区)必须来自此处列出的tz 数据库名称之一。

FILETOTEXT("url: File") => Text 将文件转换为 URL 格式的文本字符串

例如:FILETOTEXT("http://www.africau.edu/images/default/sample.pdf")

HEX_TO_INT()
返回给定十六进制字符串的数值表示形式。
例如:HEX_TO_INT('0xAB18') = '43800'

INT_TO_HEX()
返回给定数字的十六进制表示形式。
示例:INT_TO_HEX('43800') = '0xAB18'

INTERVAL_TO_SECONDS(interval: Interval) => Number 返回一个 Interval 的时长(以秒为单位)

示例:INTERVAL_TO_SECONDS(seconds_to_interval(30.0))

LOWERCASE()
将字符串转换为全小写

MAP_TO_BOOLEAN_LIST(a:{} 数组,b: 文本) => 数组 将对象数组转换为给定键的基准数组

示例:MAP_TO_BOOLEAN_LIST([{key: value}], ‘key’) = [value]

MAP_TO_INTEGER_LIST(a:{} 数组,b: 文本) => 数组 将对象数组转换为基于给定键的数组简体中文(大陆)

示例:MAP_TO_INTEGER_LIST([{key: value}], ‘key’) = [value]

MAP_TO_NUMBER_LIST(a:{} 数组,b: 文本) => 数组 将对象数组转换为基于给定键的基础数组

示例:MAP_TO_NUMBER_LIST([{key: value}], ‘key’) = [value]

MAP_TO_TEXT_LIST(a:{} 数组,b: 文本) => 数组 将对象数组转换为基于给定键的数组

示例:MAP_TO_TEXT_LIST([{key: value}], ‘key’) = [value]

**SECONDS_TO_INTERVAL()**将秒数转换为 Interval 类型。

SECONDS_TO_INTERVAL(seconds: 整数或数字) => Interval

示例:SECONDS_TO_INTERVAL(20) => 0:00:20

**TEXTTOBOOLEAN()**将文本解析为布尔值。

“y”、“yes”、“t”、“true”和“on”以及任何大写变体均被识别为 true,“n”、“no”、“f”、“false”和“off”均被识别为 false。

例:TEXTTOBOOLEAN("yes")

TEXTTODATETIME()
将文本值转换为具有指定参数的日期时间值。通常用于处理Connector Function 中以文本格式共享的日期时间,并需要将其转换的情况。

TEXTTOIMAGEURL(url:Text)=> 图片 URL 将字符串转换为图片 URL。

示例:TEXTTOIMAGEURL("https://example.com/photo.jpg")

**TEXTTOINTEGER()**将文本或时间间隔解析为整数。

示例:TEXTTOINTEGER("123")

**TEXTTONUMBER()**将文本或时间戳解析为数字

示例:TEXTTONUMBER("2.4")

**TOTEXT()**将任意内容解析为文本。

示例:TOTEXT(2)

UPPERCASE()
将字符串转换为全大写

USER_ID_TO_USER(id: Text) => User 将用户 ID 转换为用户对象

示例:User_id_to_user("abc") = User

截断表达式

CEIL()
向上舍入至最接近的整数

FLOOR()
向下舍入到最接近的整数

ROUND()
将数字四舍五入到指定的小数位数。最多 3 位小数。
例 1 - ROUND(123.123456, 1)
这将返回 123.1
示例 2 - ROUND(123.12)
将返回 123

ROUNDDATETIME()
将日期时间值截断为指定的单位,例如月份或天数。

示例:ROUNDDATETIME(datetime_variable, "Month", "America/New_York")
这将把一个日期时间转换为仅包含月份的信息,并采用东部标准时间。

**注意:**最后一个参数(时区)必须来自此处列出的tz 数据库名称之一。

返回值表达式

ABS()
返回一个数的绝对值

CONTAINS()
返回字符串是否包含给定的子字符串
例如:CONTAINS("123ABC", "123")
这将返回“true”

COS()
返回给定输入的余弦值

ENCODE_URI(component: Text) => Text
返回 URI 的 URL 编码字符串版本。
例如:ENCODE_URI("http://example.com/a=foo&b=atest") = "http://example.com/a=foo&b=a test"

ENCODE_URI_COMPONENT(component: Text) => Text
返回 URI 组件的 URL 编码字符串版本。

示例:ENCODE_URI_COMPONENT("a & b") = "a%20%26%20b"

**FIND()**返回第一个参数在第二个参数中出现的位置。

IF()
根据第一个参数,若其值为真则返回第二个参数,若其值为假则返回第三个参数。
例如:IF(true, 1, 2)

**ISNULL()**如果参数为空,则返回 true;否则返回 false。

**LEFT()**返回文本值的子字符串,从第二个参数指定的位置开始。

**LEN()**返回文本值的长度。同时也会返回数组中的元素个数。

LINK()
返回第一个非空的参数。

例如:LINK(weight, 70)
如果 weight 有值,则返回weight的值

MAX()
返回值最大的参数
示例:MAX(var1, var2)
如果 var1 的值大于 var2 的值,则返回 var1 的值

**MID()**返回文本值的子字符串,从第二个参数指定的位置开始。第三个参数指定返回子字符串的长度。

**MIN()**返回值最小的参数
示例:MIN(var1, var2)
如果 var1 的值小于 var2 的值,则返回 var1 的值

POW()
返回第一个参数的第二个参数次幂
示例:POW(3,2)
这将返回 9

RAND()
生成一个介于 0 和 1 之间的随机小数

RANDBETWEEN()
生成一个介于两个指定数字之间的随机整数
例如:RANDBETWEEN(5,10)

RANDOMSTRING()
返回一个由17个字符组成的随机字符串。用于为新表记录生成ID。

**RANDOM_COLOR()**生成一个随机颜色

示例:RANDOM_COLOR() = ##c537a5

RGBA(r: 整数, g: 整数, b: 整数, a: 整数) => 颜色 返回指定红、绿、蓝和透明度分量的颜色

示例:RGBA(255, 255, 0, 0.5) = ##ffff00(50% 不透明度)

RGB(r: 整数, g: 整数, b: 整数) => 颜色 返回指定红、绿、蓝分量的颜色

例:RGB(255, 255, 0) = ##ffff00

**RIGHT()**返回文本值的子字符串,从第二个参数指定的位置开始。

SIN()
返回给定输入的正弦值

**SPLIT()**将文本值按指定的分隔符拆分为数组。

SQRT()
返回一个数的平方根

SUBSTITUTE()
在第一个参数指定的字符串中,将所有第二个参数的实例替换为第三个参数
示例:SUBSTITUTE("A734", "7", "3")
这将返回“A334”

TAN()
返回给定输入的正切值

**TRIM()**从第一个参数的前后删除子字符串(由第二个参数指定)。

数组表达式

ARRAY_AVG()
返回数组中所有数字的平均值
示例:ARRAY_AVG([1,2,3])
这将返回 2

ARRAY_CONCAT()
返回一个包含所有参数中数组元素的单一数组。仅适用于同类型的数组,即所有文本数组。
示例:ARRAY_CONCAT([1,2],[3,4],[5,6])
这将返回 [1,2,3,4,5,6]

ARRAYCONTAINS()
判断某个值是否存在于数组中
示例:ARRAYCONTAINS([1,2,3], 1)
该表达式将返回“true”

**ARRAY_INDEX_OF()**返回给定数组中给定值首次出现的索引。若未找到,则返回“-1”。示例:ARRAY_INDEX_OF([1,2,3], 2) 这将返回 1

ARRAY_MAX()
返回给定数组中的最小值
示例:ARRAY_MAX([1,2,3])
这将返回 3

ARRAY_MIN()
返回给定数组中的最小值
示例:ARRAY_MIN([1,2,3])
这将返回 1

ARRAY_STDEV_POPULATION()
返回给定数值数组总体标准差
示例:ARRAY_STDEV_POPULATION([1,2,3])
这将返回 0.816496580927726

ARRAY_STDEV_SAMPLE()
返回给定数值数组的样本标准差
示例:ARRAY_STDEV_SAMPLE([1,2,3])
这将返回 1

**ARRAY_VALUE_AT_INDEX()**返回给定列表中指定索引处的值。如果索引超出范围,则返回 null。示例:ARRAY_VALUE_AT_INDEX([1,2,3], 0) 这将返回 1

**REGEX_MATCH()**返回一个包含文本值中正则表达式匹配项的数组。根据给定的正则表达式和修饰符进行匹配。该方法基于JavaScript的match 方法,并具有 2 种“模式”。

当此方法有 2 个参数时,其效果等同于以下 JavaScript 表达式:text.match(new RegExp(regex))当提供可选参数 modifiers 时,该方法等同于以下 JavaScript 表达式:text.match(new RegExp(regex, modifiers))。修饰符是可用于修改正则表达式搜索行为的标志。

**REGEX_REPLACE()**返回一个包含文本值中正则表达式匹配项的数组。匹配基于给定的正则表达式和修饰符。该方法基于JavaScript 的replace 方法。

当该函数有 3 个参数时,其效果等同于以下 JavaScript 表达式:text.replace(new RegExp(regex), replacement)

当提供可选参数 modifiers 时,此方法等同于以下 JavaScript 表达式:text.replace(new RegExp(regex, modifiers), replacement)修饰符是可用于修改正则表达式搜索行为的标志。

在字符串中编写正则表达式时,必须对反斜杠 () 进行转义,因为 JavaScript 会将字符串字面量中的每个反斜杠视为转义字符。

regex_replace('Hello There', '(\\w+)\\s(\\w+)', '$2 $1')该表达式将输出“There Hello”。