重要事項
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
用一個正則表達式定義主要元素,該表達式能與任意八位數相符:
\d{8}新增校驗碼驗證器。
將權重以逗號分隔、校驗碼位置和調制值相加。 關於模運算的更多資訊,請參見 模運算。
注意事項
如果校驗碼不包含在校驗碼計算中,請使用 0 作為校驗碼的權重。 例如,在八位數駕照號碼的例子中,若檢查碼不用於計算檢查碼,權重 8 等於 0。
參數
以下參數定義校驗和驗證器執行計算的方式:
- 重量: 定義從正則表達式第 1 位到最後一個位的每個數字需要乘以的序列。 此方法計算和積。 權重位置只指數字的順序,不考慮像破折號這類非數字字元。
- 模組: 對前一個運算的結果執行模運算。
- 模係數: 對模結果進行加法或減法。
- 檢查碼: 定義將與計算數字比較的校驗碼位置。
進階校驗和驗證器
進階校驗和可無需腳本,透過使用像是 PositionBasedUpdate、UseAscii、MultiDigitResult、CheckDigitValue 等參數。
計算前的數字替換: 在校驗和計算前,請定義根據位置或數值替換數字的規則。
信件轉 ASCII 轉換: 非數字字元現在可以轉換成其 ASCII 值,而非忽略,從而支援字母數字輸入的校驗和。
多位數結果的個位數減少:現在,中間結果可將數字加 (12 → 1+2 = 3) ,縮小為單位數,使輸出更緊湊且一致。
Two-Digit 結果後續處理: 對兩位數結果應用除法或模數等數學運算,推導出最終數值。
排除特定校驗碼值: 定義一份不允許的校驗碼值清單。 若計算結果與 1 相符,系統會修改輸入並重新執行校驗和邏輯。
最終校驗碼替換: 計算後,可以用其他選項替換特定的校驗碼值。
進階校驗和驗證器參數
以下參數控制進階校驗和驗證器的行為:
- UseAscii: 用 ASCII 值替換字母表
- PositionBasedUpdate: 校驗和計算前的過程。 我們會根據屬性 match-position-replacementwith 更新數字。
- 校驗碼值: 校驗和計算後。 如果計算出的校驗和是重複清單的一部分,則對其執行定義操作。
- ltiDigitResult:** 後/中間校驗和計算。 如果後期/中間計算結果是多位數,就對它執行定義的操作直到變成單位數。
例如,在下方的 XML 中,我們傳遞了以下參數:權重、mod、檢查碼和 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 無法透過 UX 建立或編輯帶有進階校驗和邏輯的 SITs。
- 在字母數字 SIT 中,若字母未定義權重,則會跳過。
日期驗證器
如果你正在建立的新模式中嵌入了正則表達式中的日期值,你可以使用 日期驗證器 來測試該日期值是否符合你的條件。 例如,你想為一個九位數的員工識別號碼建立一個 SIT。 前六位數字為聘用日期(DDMMYY格式),後三位數字則為隨機產生的數字。 請使用以下步驟來驗證前六位數字的格式正確:
功能性處理器作為驗證者
你可以用函式處理器來處理一些最常用的 SIT 作為驗證器。 使用函式處理器可以讓你定義自己的正則表達式,同時確保它們通過 SIT 所需的額外檢查。 例如,Func_India_Aadhar 確保你定義的自訂正則表達式能通過印度 Aadhar 卡所需的驗證邏輯。 欲了解更多可用於驗證的 DLP 函式,請參閱 敏感資訊類型函數。
Luhn 檢查驗證器
如果你有包含正則表達式的自訂敏感資訊型態,可以使用 Luhn 校驗驗證器,這樣應該能通過 Luhn 演算法。
敏感資訊類型 額外檢查
以下是可用其他檢查的定義和一些範例。
排除特定匹配:此檢查讓你在偵測編輯圖案匹配時,定義可排除的關鍵字。 例如,您可以排除測試信用卡號碼 (例如 '4111111111111111'),讓這些號碼無法相符為有效的號碼。
以字元開頭或不以字元開頭:這項檢查可讓您定義相符項目必須或不能以哪些字元開頭。 例如,如果您希望模式只偵測開頭為 41、42 或 43 的信用卡號碼,請選取 [開頭為],然後新增 41、42 和 43 到清單中,以逗號分隔。
以字元結束或不以字元結束:這項檢查可讓您定義相符項目必須或不能以哪些字元結束。 例如,如果你的員工編號不能以 0 或 1 結尾,請選擇 「不以 0 結尾 」,並在列表中加上 0 和 1,並以逗號分隔。
排除重複字元:此檢查可讓您忽略所有數字都相同的相符項目。 例如,如果六位數的員工 ID 號碼無法所有數字相同,你可以選擇 排除重複字 元,以排除 111111、222222、333333、444444、555555、666666、777777、888888、999999 和 00000 從有效員工 ID 匹配列表中剔除。
包含或排除首碼:此檢查可讓您定義在相符實體之前必須立即找到或不能立即找到的關鍵字。 根據你的選擇,如果實體前面有你這裡包含的前綴,則會被匹配或不匹配。 例如,如果你排除前綴 GUID,任何前面有 GUID: 的實體都不會匹配。
包含或排除後綴:此檢查讓您能定義必須或不必須立即在匹配實體後方找到的關鍵字。 根據你的選擇,如果實體後面有你這裡附上的後綴,則是否符合。 例如,如果你排除GUID後綴 ,任何後面跟著的:GUID文字都不會匹配。