條件運算子

運算子定義了變數與值之間的比較方式。根據適用場景,運算子分為以下幾類:

數值類運算子

用於數值比較,適用於埠號、狀態碼、長度、計數等數值型變數。

  • 數字 =(==:數值等於。判斷變數的數值是否等於指定值。

  • 數字 ≠(!=:數值不等於。判斷變數的數值是否不等於指定值。

  • 數字 <(<:數值小於。判斷變數的數值是否小於指定值。

  • 數字 ≤(<=:數值小於或等於。判斷變數的數值是否小於或等於指定值。

  • 數字 >(>:數值大於。判斷變數的數值是否大於指定值。

  • 數字 ≥(>=:數值大於或等於。判斷變數的數值是否大於或等於指定值。

字串類運算子

用於字串比較,適用於 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-mobileduplicate-req-headerreq-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:不在時間週期內。判斷當前時間是否不在指定的週期性時間段內。