共用方式為


敏感性資訊類型 REGEX 驗證器和其他檢查

重要事項

Microsoft 客戶服務及支援無法協助您建立自訂分類或規則運算式模式。 支援工程師可以為功能提供有限的支援,例如提供範例正規表示式模式來測試功能,或協助疑難排解未如預期觸發的現有正規表示式模式。 不過,支援工程師無法向您保證任何自訂內容比對開發都能滿足您的需求或義務。

敏感性資訊類型正規表示式驗證器

總和檢查碼驗證器

若要對正規表示式中的數字執行總和檢查碼,您可以使用 總和檢查碼驗證器。 例如,如果您需要為八位數授權號碼建立 SIT,其中最後一位數是使用 mod 9 計算驗證的總和檢查碼,請設定總和檢查碼演算法,如下所示:

Sum = digit 1 * Weight 1 + digit 2 * weight 2 + digit 3 * weight 3 + digit 4 * weight 4 + digit 5 * weight 5 + digit 6 * weight 6 + digit 7 * weight 7 + digit 8 * weight 8
Mod value = Sum % 9
If Mod value == digit 8
    Account number is valid
If Mod value != digit 8
    Account number is invalid
  1. 使用以下規則運算式定義主要元素:

    \d{8}
    
  2. 新增總和檢查碼驗證器。

  3. 新增以逗號分隔的權重值、校驗位的位置和 mod 值。 如需 Modulo 作業的詳細資訊,請參閱 Modulo 作業

    注意事項

    如果檢查碼不是總和檢查碼計算的一部分,請使用 0 作為檢查碼的權重。 例如,在前一種情況下,如果檢查位不用於計算檢查位,則權重 8 等於 0。

    已配置總和檢查碼驗證器的屏幕截圖。

參數

  • 重量: 定義從正則表達式的位置 1 到最後一個位置的每個數字需要相乘的數字系列。 這會計算總和乘積。 權重位置僅指數字的順序,它不考慮任何非數字字符,例如破折號。
  • 模組: 對上一個操作的結果執行模運算。
  • 模組係數: 對模結果執行加法或減法。
  • 校驗位數: 定義將與計算出的數字進行比較的檢查位的位置。

進階校驗和驗證器

進階總和檢查碼可以使用,而不需要腳本,方法是使用 PositionBasedUpdate、UseAscii、MultiDigitResult、CheckDigitValue 等參數。

  • 計算前的數字替換: 定義規則,在計算總和檢查碼之前,根據位置或值取代數字。

  • 字母到 ASCII 轉換: 非數字字元現在可以轉換為其 ASCII 值,而不是被忽略,從而啟用英數字元輸入的校驗和支援。

  • 多位數結果的個位數減少: 現在,透過將中間結果的數字相加 (12 → 1+2 = 3) ,可以將其減少到個位數,從而實現更緊湊和一致的輸出。

  • Two-Digit 結果的後處理: 將除法或模等數學運算應用於兩位數結果以得出最終值。

  • 排除特定校驗位值:定義不允許的校驗位數值清單。 如果計算結果符合,系統會修改輸入並重新執行總和檢查碼邏輯。

  • 最終校驗位替換: 計算後,特定的校驗位值可以用替代方案取代。

進階總和檢查碼驗證器參數

  • 使用Ascii: 將字母替換為其 ascii 值
  • 基於位置的更新: 預總和檢查碼計算。 我們根據屬性 match-position-replacewith 更新數字。
  • CheckDigitValue: 後總和檢查碼計算。 如果計算的校驗和是重複清單的一部分,請對其執行定義的操作。
  • ltiDigitResult:** 後/中間校驗和計算。 如果後/中間計算結果為多位數,請對其執行定義的操作,直到它為個位數。

例如,在下面的 XML 中,我們傳遞了以下參數:weights、mod、checkdigit 和 ascii。

<Validators id="Validator_test_id_card_number">
<Validator type="Checksum">
<Param name="Weights">1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1</Param>
<Param name="Mod">9</Param>
<Param name="CheckDigit">7</Param>
<Param name="UseAscii">1</Param>
</Validator>
</Validators>
限制
  • 沒有 UI 支援無法透過 UX 使用進階總和檢查碼邏輯建立或編輯 SIT。
  • 在英數字元 SIT 中,如果未定義任何加權,則會略過字母。

日期驗證器

如果內嵌在規則運算式中的日期值是您正在建立的新模式的一部分,您可以使用 日期驗證器 來測試該日期值是否符合您的條件。 例如,您想要為九位數的員工識別號碼建立 SIT。 前六位數字是 DDMMYY 格式的僱用日期,最後三位數字是隨機生成的數字。 使用下列步驟來驗證前六位數字的格式是否正確:

  1. 使用以下規則運算式定義主要元素:

    \d{9}
    
  2. 新增日期驗證器。

  3. 選取日期格式和起始偏移。 由於日期字串是前六位數,因此偏移量為 0

    已配置日期驗證器的屏幕截圖。

作為驗證者的功能處理器

您可以針對一些最常用的 SIT 使用函式處理器作為驗證器。 使用函式處理器可讓您定義自己的規則運算式,同時確保它們通過 SIT 所需的其他檢查。 例如,Func_India_Aadhar確保您定義的自訂規則運算式通過印度 Aadhar 卡所需的驗證邏輯。 如需可用作驗證器的 DLP 函式的詳細資訊,請參閱 敏感性資訊類型函式

Luhn 檢查驗證器

如果您有包含規則運算式的自訂敏感性資訊類型,則可以使用 Luhn 檢查驗證器,該類型應該通過 Luhn 演算法

敏感性資訊類型其他檢查

以下是可用其他檢查的定義和一些範例。

排除特定相符項:此檢查可讓您定義在偵測您正在編輯的模式相符項時要排除的關鍵字。 例如,您可以排除測試信用卡號碼 (例如 '4111111111111111'),讓這些號碼無法相符為有效的號碼。

以字元開頭或不以字元開頭:這項檢查可讓您定義相符項目必須或不能以哪些字元開頭。 例如,如果您希望模式只偵測開頭為 41、42 或 43 的信用卡號碼,請選取 [開頭為],然後新增 41、42 和 43 到清單中,以逗號分隔。

以字元結束或不以字元結束:這項檢查可讓您定義相符項目必須或不能以哪些字元結束。 例如,如果您的員工 ID 號碼不能以 0 或 1 結尾,請選取 [ 不以 結尾 ] ,並將 0 和 1 新增至清單,並以逗號分隔。

排除重複字元:此檢查可讓您忽略所有數字都相同的相符項目。 例如,如果六位數的員工 ID 號碼不能讓所有數字都相同,您可以選取 排除 重複字元 ,從員工 ID 的有效相符清單中排除 111111、222222、333333、444444、555555、666666、777777、888888、999999 和 000000。

包含或排除首碼:此檢查可讓您定義在相符實體之前必須立即找到或不能立即找到的關鍵字。 根據您的選擇,如果實體前面有您在此處包含的前置詞,則會比對或不比對。 例如,如果您 排除 前置詞 GUID,則任何前面有 GUID: 的實體都不會相符。

包含或排除尾碼:此檢查可讓您定義在相符實體之後必須立即找到或不能立即找到的關鍵字。 根據您的選擇,實體後面接著您在此處包含的尾碼,則匹配或不匹配。 例如,如果您 排除 尾碼 GUID,後面跟著的任何 :GUID 文字都不會相符。