本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
規則語言參考
下節概述 Amazon Fraud Detector 中的表達式 (即規則撰寫) 功能。
使用變數
您可以使用評估事件類型中定義的任何變數做為表達式的一部分。使用美元符號來表示變數:
$example_variable < 100
使用清單
您可以使用與變數類型相關聯的任何清單,並將項目填入規則表達式中。使用美元符號來表示清單項目值:
$example_list_variable in @list_name
比較、成員資格和身分運算子
Amazon Fraud Detector 包含下列比較運算子:>、>=、<、<=、!=、==、in、not in
範例如下:
範例:<
$variable < 100
範例: in, not in
$variable in [5, 10, 25, 100]
範例:!=
$variable != "US"
範例:==
$variable == 1000
運算子資料表
運算子 | Amazon Fraud Detector Operator |
---|---|
等於 | == |
不等於 | != |
大於 | > |
小於 | < |
大於或等於 | >= |
小於或等於 | <= |
In (入) | in |
及 | 以及 |
或 | 或 |
Not | ! |
基本數學
您可以在表達式中使用基本數學運算子 (例如 +、-、* 、/)。典型的使用案例是在評估期間需要合併變數時。
在下面的規則中,我們將$variable_1
使用 新增變數$variable_2
,並檢查總數是否小於 10。
$variable_1 + $variable_2 < 10
基本數學資料表資料
運算子 | Amazon Fraud Detector Operator |
---|---|
Plus | + |
最小值 | - |
乘 | * |
除 | / |
Modulo | % |
規則運算式 (regex)
您可以使用 regex 來搜尋特定模式,做為表達式的一部分。如果您想要比對其中一個變數的特定字串或數值,這特別有用。Amazon Fraud Detector 僅在使用規則運算式時支援比對 (例如,它會根據提供的字串是否與規則運算式相符,傳回 True/False)。Amazon Fraud Detector 的規則表達式支援是以 Java 中的 .matches() 為基礎 (使用 RE2J 規則表達式程式庫)。網際網路上有數個實用的網站,可用於測試不同的規則表達式模式。
在下面的第一個範例中,我們首先將變數轉換為email
小寫。然後,我們會檢查模式是否@gmail.com
在 email
變數中。請注意,第二個期間會逸出,以便我們可以明確檢查字串 .com
。
regex_match(".*@gmail\.com", lowercase($email))
在第二個範例中,我們會檢查變數是否phone_number
包含國家/地區碼+1
,以判斷電話號碼是否來自美國。加號會逸出,以便我們可以明確檢查字串 +1
。
regex_match(".*\+1", $phone_number)
Regex 資料表
運算子 | Amazon Fraud Detector 範例 |
---|---|
比對開頭為 的任何字串 | regex_match("^mystring",$variable) |
完全比對整個字串 | regex_match("mystring",$variable) |
比對新行以外的任何字元 | regex_match(".", $variable) |
比對除「mystring」前的新行以外的任意數量字元 | regex_match(".*mystring",$variable) |
逸出特殊字元 | \ |
檢查是否有遺失值
有時檢查值是否遺失會有幫助。在 Amazon Fraud Detector 中,這會以 null 表示。您可以使用下列語法來執行此操作:
$variable != null
同樣地,如果您想要檢查值是否存在,您可以執行下列動作:
$variable == null
多個條件
您可以使用 and
和 將多個表達式結合在一起or
。Amazon Fraud Detector 會在找到單一 true 值時在OR
表達式中停止,並在找到單一 false 值AND
時在 中停止。
在下面的範例中,我們使用 條件來檢查兩個and
條件。在第一個陳述式中,我們正在檢查變數 1 是否小於 100。在第二個階段,我們會檢查變數 2 是否不是美國。
由於規則使用 and
,因此整個條件都必須是 TRUE,才能評估為 TRUE。
$variable_1 < 100 and $variable_2 != "US"
您可以使用括號將布林值操作分組,如下所示:
$variable_1 < 100 and $variable_2 != "US" or ($variable_1 * 100.0 > $variable_3)
其他表達式類型
DateTime 函數
函式 | 描述 | 範例 |
---|---|---|
getcurrentdatetime() | 以 ISO8601 UTC 格式提供規則執行的目前時間。您可以使用 getepochmilliseconds(getcurrentdatetime()) 來執行其他操作 | getcurrentdatetime() == "2023-03-28T18:34:02Z" |
isbefore(DateTime1、DateTime2) | 如果發起人 DateTime1 早於 DateTime2,則傳回布林值 (True/False) | isbefore(getcurrentdatetime(), "2019-11-30T01:01:01Z") == "False" isbefore(getcurrentdatetime(), "2050-11-30T01:05:01Z") == "True" |
isafter(DateTime1,DateTime2) | 如果發起人 DateTime1 晚於 DateTime2,則傳回布林值 (True/False) | isafter(getcurrentdatetime(), "2019-11-30T01:01:01Z") == "True" isafter(getcurrentdatetime(), "2050-11-30T01:05:01Z") == "False" |
getepochmilliseconds(DateTime) | 採用 DateTime,並以 epoch 毫秒傳回該 DateTime。適用於在日期執行數學操作 | getepochmilliseconds("2019-11-30T01:01:01Z") == 1575032461 |
字串運算子
運算子 | 範例 |
---|---|
將字串轉換為大寫 | uppercase($variable) |
將字串轉換為小寫 | lowercase($variable) |
其他
運算子 | 註解 |
---|---|
新增註解 |
# 我的評論 |