条件操作符
操作符定义了变量与值之间的比较方式。根据适用场景,操作符分为以下几类:
数值类操作符
用于数值比较,适用于端口号、状态码、长度、计数等数值型变量。
数字 =(
==):数值等于。判断变量的数值是否等于指定值。数字 ≠(
!=):数值不等于。判断变量的数值是否不等于指定值。数字 <(
<):数值小于。判断变量的数值是否小于指定值。数字 ≤(
<=):数值小于或等于。判断变量的数值是否小于或等于指定值。数字 >(
>):数值大于。判断变量的数值是否大于指定值。数字 ≥(
>=):数值大于或等于。判断变量的数值是否大于或等于指定值。
字符串类操作符
用于字符串比较,适用于 URI、主机名、请求头、Cookie 等字符串型变量。
字符串 =(
eq):字符串等于。判断变量的字符串值是否与指定值完全相同。支持正则表达式(rx)和通配符(wc)模式匹配。字符串 ≠(
ne):字符串不等于。判断变量的字符串值是否与指定值不同。支持正则表达式和通配符模式匹配。字符串 <(
lt):字符串小于。按字典序比较,判断变量值是否小于指定值。字符串 ≤(
le):字符串小于或等于。按字典序比较。字符串 >(
gt):字符串大于。按字典序比较,判断变量值是否大于指定值。字符串 ≥(
ge):字符串大于或等于。按字典序比较。包含(
contains):包含。判断变量值中是否包含指定的子字符串。支持正则表达式和通配符模式匹配。不包含(
!contains):不包含。判断变量值中是否不包含指定的子字符串。支持正则表达式和通配符模式匹配。包含词(
contains-word):包含整词。判断变量值中是否包含指定的完整单词(以单词边界分隔)。不包含词(
!contains-word):不包含整词。判断变量值中是否不包含指定的完整单词。前缀匹配(
prefix):前缀匹配。判断变量值是否以指定字符串开头。支持正则表达式和通配符模式匹配。前缀不匹配(
!prefix):前缀不匹配。判断变量值是否不以指定字符串开头。支持正则表达式和通配符模式匹配。后缀匹配(
suffix):后缀匹配。判断变量值是否以指定字符串结尾。支持正则表达式和通配符模式匹配。后缀不匹配(
!suffix):后缀不匹配。判断变量值是否不以指定字符串结尾。支持正则表达式和通配符模式匹配。
字符串长度类操作符
用于对变量值的字符串长度进行数值比较,适用于字符串型变量。
字符串长度 =(
str-len-eq):字符串长度等于。判断变量值的长度是否等于指定数值。字符串长度 ≠(
str-len-ne):字符串长度不等于。判断变量值的长度是否不等于指定数值。字符串长度 <(
str-len-lt):字符串长度小于。判断变量值的长度是否小于指定数值。字符串长度 ≤(
str-len-le):字符串长度小于或等于。判断变量值的长度是否小于或等于指定数值。字符串长度 >(
str-len-gt):字符串长度大于。判断变量值的长度是否大于指定数值。字符串长度 ≥(
str-len-ge):字符串长度大于或等于。判断变量值的长度是否大于或等于指定数值。
IP 地址类操作符
用于 IP 地址和 CIDR 网段匹配,适用于客户端地址、服务器地址、X-Forwarded-For 地址等变量。
IP 地址或者 CIDR 匹配(
~~):IP 地址或 CIDR 匹配。判断变量中的 IP 地址是否属于指定的网段范围。值的格式为 CIDR 表示法,如192.168.0.1/24或::1/24。IP 地址或者 CIDR 不匹配(
!~~):IP 地址或 CIDR 不匹配。判断变量中的 IP 地址是否不属于指定的网段范围。
布尔类操作符
用于布尔值判断,适用于 ua-is-mobile、duplicate-req-header、req-rejected 等布尔型变量。这类操作符不需要填写右侧的值。
是(
is-true):为真。判断变量值是否为 true。不是(
!is-true):为假。判断变量值是否为 false。
空值类操作符
用于判断变量是否有值,适用于可能不存在的请求头、Cookie、参数等变量。这类操作符不需要填写右侧的值。
为空(
is-empty):为空。判断变量值是否为空(未定义、空字符串)。不为空(
!is-empty):不为空。判断变量值是否不为空。
时间类操作符
用于时间范围判断,仅适用于时间(date)变量。
在时间间隔内(
within-date):在时间区间内。判断当前时间是否在指定的起止时间范围内。需要设置start_time(开始时间)和end_time(结束时间)。不在选择的时间间隔之内(
!within-date):不在时间区间内。判断当前时间是否不在指定的起止时间范围内。在时间段内(
within-period):在时间周期内。判断当前时间是否在指定的周期性时间段内。除了起止时间外,还可以设置weekdays(星期几),其中 1 代表星期一,7 代表星期日。适用于"每周一至周五的 9:00-18:00"这类周期性规则。不在时间段内(
!within-period):不在时间周期内。判断当前时间是否不在指定的周期性时间段内。