内置函数

内置函数由样书中的表达式使用。

例如,您可以使用内置函数 str() 将数字转换为字符串。

str($parameters.order)

或者,您可以使用内置函数 int() 将字符串转换为整数。

int($parameters.优先级)

以下是样书表达式中支持的内置函数列表及其使用方法的示例:

字符串()

str() 函数将输入参数转换为字符串值。

允许的参数类型:

示例

int()

int() 函数以字符串、数字、IP 地址或 tcpport 作为参数并返回一个整数。

示例

bool()

bool() 函数接受任何类型作为参数。 如果参数值为 false、空或不存在,则此函数返回 false

否则,它返回 true

示例

len()

len() 函数以字符串或列表作为参数,并返回字符串中的字符数或列表中的项目数。

示例 1

如果您定义替换如下:

项目:[“123”,“abc”,“xyz”]

len($substitutions.items) 函数返回 3

示例 2

len("NetScaler Console") 函数返回 10

示例 3

如果 $parameters.vips 具有值 ['1.1.1.1', '1.1.1.2', '1.1.1.3'],则 len($parameters.vips) 函数返回 3

min()

min() 函数以列表或一系列数字或 tcp-ports 作为参数,并返回最小项。

带有一系列数字/tcp 端口的示例

带有数字/tcp 端口列表的示例

最大限度()

max() 函数以列表或一系列数字或 tcp-ports 作为参数,并返回其中最大的项。

带有一系列数字/tcp 端口的示例

带有数字/tcp 端口列表的示例

垃圾桶()

bin() 函数以数字作为参数,并返回以二进制格式表示该数字的字符串。

表达式示例

bin(100) 函数返回 0b1100100

八度()

oct() 函数以数字作为参数,并返回以八进制格式表示该数字的字符串。

表达式示例

oct(100) 函数返回 0144

十六进制()

hex() 函数以数字作为参数,并返回以十六进制格式表示该数字的小写字符串。

表达式示例

hex(100) 函数返回 0x64

降低()

lower() 函数以字符串作为参数,并返回小写的相同字符串。

示例

lower("ADM") 函数返回 adm

上()

upper() 函数接受一个字符串作为参数,并以大写形式返回相同的字符串。

示例

upper("NetScaler Console") 函数返回 NetScaler Console

和()

sum() 函数以数字列表或 tcpports 作为参数,并返回列表中数字的总和。

示例 1

如果您定义替换如下: 替换:

数字列表 = [11, 22, 55]

sum($substitutions.list-of-numbers) 函数返回 88

示例 2

如果 $parameters.ports[80, 81, 82],则 sum($parameters.ports) 函数返回 243

战俘()

pow() 函数接受两个数字作为参数,并返回一个数字,该数字表示第一个参数的第二个参数的幂。

示例

pow(3,2) 函数返回 9

ip()

ip() 函数以整数、字符串或 IP 地址作为参数,并根据输入值返回 IP 地址。

示例

base64.编码()

base64.encode() 函数接受一个字符串参数并返回 base64 编码的字符串。

示例

base64.encode("abcd") 函数返回 YWJjZA==

base64.解码()

base64.decode 函数以 base64 编码的字符串作为参数并返回解码后的字符串。

示例

base64.decode("YWJjZA==") 函数返回 abcd

存在()

exist() 函数接受任何类型的参数并返回布尔值。 如果输入有任何值,则返回值为 True 。 如果输入参数没有值(即没有值),则返回值为 False

考虑到 $parameters.monitor 是一个可选参数。 如果在创建配置包时为此参数提供一个值,则存在 ($parameters.monitor) 函数返回 True

否则,它返回 False

筛选()

filter() 函数接受两个参数。

参数 1:接受一个参数并返回布尔值的替代函数。

参数 2:列表。

该函数返回原始列表的一个子集,其中当传递给第一个 参数中的替换函数时,每个元素的计算结果为 True

示例

考虑如下替代函数:

替换:

x(a): $a != 81

如果输入值不等于 81,则此函数返回 True 。 否则,它返回 False

假设,$parameters.ports[81, 80, 81, 89]

过滤器($substitutions.x, $parameters.ports) 通过从列表中删除所有出现的 81 返回 [80, 89]

如果-那么-否则()

函数 if-then-else() 接受三个参数。

参数 1:布尔表达式

参数 2:任何表达式

参数 3:任何表达式(可选)

如果参数 1 中的表达式计算结果为 True,则函数返回作为参数 2 提供的表达式的值。

否则,如果提供了参数 3,则该函数返回参数 3 中表达式的值。

如果未提供参数 3,则函数返回 而不是

示例 1

如果 $parameters.servicetype 的值为 HTTP,则 if-then-else($parameters.servicetype == HTTP, 80, 443) 函数返回 80。 否则,该函数返回 443

示例 2

如果 $parameters.servicetype 具有值 HTTP,则 if-then-else($parameters.servicetype == HTTP, $parameters.hport, $parameters.sport) 函数返回 $parameters.hport 的值。

否则,该函数返回 $parameters.sport的值。

示例 3

如果 $parameters.servicetype 的值为 HTTP,则 if-then-else($parameters.servicetype == HTTP, 80) 返回 80

否则,该函数不会返回任何值。

加入()

join() 函数接受两个参数:

参数 1:数字列表、 tcp-ports、字符串或 IP 地址

参数 2:分隔符字符串(可选)

此函数将作为参数 1 提供的列表的元素连接成一个字符串,其中每个元素由作为参数 2 提供的分隔符字符串分隔。 如果没有提供参数 2,则列表中的元素将连接为一个字符串。

示例

分裂()

split() 函数根据指定的分隔符将输入字符串拆分为多个列表。 如果没有指定分隔符或者指定为空白(''),则此函数将空格视为分隔符并将字符串拆分为列表。

例子:

地图()

map() 函数接受两个参数;

参数 1:任何函数

参数 2:元素列表。

该函数返回一个列表,其中列表中的每个元素都是将 map() 函数(参数 1)应用于参数 2 中相应元素的结果。

参数 1 中允许的函数:

示例

假设 $parameters.nums 是 [81, 82, 83]

这个 map 函数的结果是一个数字列表。 每个元素都是通过对输入列表 ($parameters.nums)中的相应元素应用替换函数 $substitutions.add-10 来计算的。

quotewrap()

quotewrap() 函数以字符串作为参数,并在输入值前后添加双引号字符后返回字符串。

示例

quotewrap("ADM") 函数返回 "mas"

代替()

replace() 函数接受三个参数:

参数 1: 字符串 或以下内置类型的列表:

参数 2:单个值或值列表,其类型与参数 1 中指定的类型匹配

参数 3:与参数 1 中指定的类型相同的单个值(可选)

replace() 函数将参数 1 中所有出现的参数 2 替换为参数 3。

如果未提供参数 3,则所有出现的参数 2 都会从参数 1 中删除。

示例

修剪()

trim() 函数返回一个字符串,其中输入字符串的前导和尾随空格已被删除。

示例

trim(' abc ') 函数返回 abc

截短()

truncate() 函数接受两个参数:

参数 1:字符串

参数 2:数字

该函数返回一个字符串,其中参数 1 中的输入字符串被截断为参数 2 指定的长度。

示例

truncate('NetScaler Console', 6) 返回 Citrix

清楚的()

distinct() 函数从列表输入中提取唯一的项目。

示例: 如果 $parameters.input_list['ADM', 'ADC', 'VPX', 'ADC', 'ADM', 'CPX'],则 distinct($parameters.input_list) 函数返回 ['ADM', 'ADC', 'VPX', 'CPX']

url.encode()

url.encode() 函数返回一个字符串,其中的字符使用符合 RFC 3986 的 ASCII 字符集进行转换。

示例

url.encode("a/b/c") 函数返回 a%2Fb%2Fc

url.decode()

url.decode() 函数返回一个字符串,其中 URL 编码参数根据 RFC 3986 解码为常规字符串。

示例

url.decode("a%2Fb%2Fc") 函数返回 a/b/c

是-ipv4()

is-ipv4() 函数以 IP 地址作为参数,如果 IP 地址是 IPv4 格式,则返回布尔值 True

is-ipv4(10.10.10.10) 函数返回 True

是-ipv6()

is-ipv6() 函数以 IP 地址作为参数,如果 IP 地址是 IPv6 格式,则返回布尔值 True

is-ipv6(2001:DB8::) 函数返回 True

以…开始()

startswith() 函数判断字符串是否以给定的前缀开头。 此函数需要两个强制字符串参数。

以(str,sub_str)开头

当字符串(str)以子字符串(sub_str)开头时,此函数返回 True

示例

以……结尾()

endswith() 函数确定字符串是否以给定的后缀结尾。 此函数需要两个强制字符串参数。

以(str,sub_str)结尾

当字符串(str)以子字符串(sub_str)结尾时,此函数返回 True

示例

包含()

contains() 函数判断字符串是否包含给定的子字符串。 此函数需要两个强制字符串参数。

包含(str,sub_str)

当子字符串(sub_str)包含在字符串(str)内的任何位置时,此函数返回 True

例子:

子串()

使用 substring() 函数从字符串中提取子字符串。

子字符串(字符串,起始索引,结束索引)

此函数需要两个强制参数和一个可选整数参数。

此函数返回位于指定索引位置之间的字符串(str)的子字符串。 如果不指定结束索引位置,则该函数将从起始索引到字符串末尾提取子字符串。

笔记

当您指定 end_index时,子字符串将排除 end_index 位置处的字符。

例子:

多种的()

multiple() 函数接受两个参数:

参数 1: 数字字符串布尔值ipaddresstcp-port密码

参数 2:一个 数字

multiple(argument1, argument2) 函数返回包含参数 1 的多个副本的列表。 副本数量等于传递给参数 2 的数量。

示例

撤销()

reverse() 函数以项目列表作为参数,并返回具有相同项目但以相反顺序列出的列表。

参数可以是以下内置类型的列表:

示例