使用 re 驗證電子郵件地址
任務
文字處理 / 正規表示式 / 驗證電子郵件地址
使用的 Opam 套件
- re 使用版本測試:1.11.0 — 使用的函式庫:re
程式碼
用於測試的範例資料陣列。
let emails =
[| "oscar.0camel@ocaml.org"
; "notAnEmail@jkorg"
; "PrivacyFirst@proton.me"
; "tommy_trojan@usc.edu"
; "emailScammer@evil.lol"
|]
使用來自 re
套件的 Re
模組,我們建立一個 Perl
風格的正規表示式並進行 compile
編譯。
let validate_email_re =
Re.Perl.re "[a-zA-Z0-9.$_!]+@[a-zA-Z0-9]+\\.[a-z]{2,3}"
|> Re.compile
使用 Re.execp
函式,我們檢查給定的 regex
是否與該 email
匹配。
let validate_email regex email =
if Re.execp regex email
then Printf.printf "%s has a valid email format\n" email
else Printf.printf "%s has an invalid email format\n" email
讓我們透過將 (validate_email validate_email_re)
回傳的函式映射到 emails
陣列來測試它。
let () =
print_endline "Email Verification Results:";
emails
|> Array.map (validate_email validate_email_re)
現在,我們檢查電子郵件中的特定頂級網域。請注意模式結尾的 |
運算符(正規表示式 OR)
let validate_email_domain_re =
Re.Perl.re "[a-zA-Z0-9.$_!]+@[a-zA-Z0-9]+\\.[com|org|edu|io|gov|me]"
|> Re.compile
讓我們透過將 (validate_email validate_email_domain_re)
回傳的函式映射到 emails
陣列來測試它。
let () =
print_endline "Email Verification Results:";
emails
|> Array.map (validate_email validate_email_domain_re)