使用 re 验证电子邮件地址

任务

文本处理 / 正则表达式 / 验证电子邮件地址

使用的 Opam 包

  • re 测试版本:1.11.0 — 使用的库:re

代码

用于测试的示例数据数组。

let emails =
  [| "[email protected]"
   ; "notAnEmail@jkorg"
   ; "[email protected]"
   ; "[email protected]"
   ; "[email protected]"
  |]

使用 re 包中的 Re 模块,我们创建一个 Perl 风格的正则表达式并进行 编译

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)

食谱无法正常工作?注释不清楚或已过时?

打开一个问题为这个食谱贡献代码