條件運算子
運算子定義了變數與值之間的比較方式。根據適用場景,運算子分為以下幾類:
數值類運算子
用於數值比較,適用於埠號、狀態碼、長度、計數等數值型變數。
數字 =(
==):數值等於。判斷變數的數值是否等於指定值。數字 ≠(
!=):數值不等於。判斷變數的數值是否不等於指定值。數字 <(
<):數值小於。判斷變數的數值是否小於指定值。數字 ≤(
<=):數值小於或等於。判斷變數的數值是否小於或等於指定值。數字 >(
>):數值大於。判斷變數的數值是否大於指定值。數字 ≥(
>=):數值大於或等於。判斷變數的數值是否大於或等於指定值。
字串類運算子
用於字串比較,適用於 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):不在時間週期內。判斷當前時間是否不在指定的週期性時間段內。