迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

Java 中的电子邮件验证

作者:迹忆客 最近更新:2023/11/13 浏览次数:

在使用任何电子邮件之前,我们必须对其进行验证。电子邮件在设计表单中起着至关重要的作用。使用 Java 中的正则表达式,我们可以验证电子邮件。我们导入 java.util.regex 包来处理 Java 中的正则表达式。

Java 为我们提供了一些使用正则表达式来验证电子邮件的方法。几种正则表达式模式可以帮助验证 Java 中的电子邮件。

第一种方法是使用最简单的正则表达式。^(.+)@(.+)$ 模式是检查电子邮件中@ 符号的最简单的表达式。在这种方法中,它不会关心符号前后的字符。它只会为该电子邮件提供 false。

下面的代码演示了上述方法。

import java.util.*;
import java.util.regex.*;
public class Email_Validation {
  public static void main(String args[]) {
    ArrayList<String> email = new ArrayList<String>();
    email.add("example@domain.com");
    // Adding an invalid emails in list
    email.add("@helloworld.com");
    // Regular Expression
    String regx = "^(.+)@(.+)$";
    // Compile regular expression to get the pattern
    Pattern pattern = Pattern.compile(regx);
    // Iterate emails array list
    for (String email1 : email) {
      // Create instance of matcher
      Matcher matcher = pattern.matcher(email1);
      System.out.println(email1 + " : " + matcher.matches() + "\n");
    }
  }
}

输出:

example@domain.com : true

@helloworld.com : false

在上面的例子中,我们创建了一个包含有效和无效电子邮件的电子邮件列表。我们使用 matcher 类来创建一个方法来检查给定的电子邮件是否与模式匹配。

第二种模式用于对用户名部分方法添加限制。这里 [A-Za-z0-9+_.-]+@(.+)$ 是用于验证电子邮件的正则表达式。它检查电子邮件的用户名部分,并根据它验证电子邮件。这种方法有一些规则。用户名可以包含 A-Z 字符、a-z 字符、0-9 数字、点(.)、下划线(_)。用户名包含上述以外的字符,则不会被验证。

例如,

import java.util.*;
import java.util.regex.*;
public class Email_Validation {
  public static void main(String args[]) {
    ArrayList<String> email = new ArrayList<String>();
    email.add("example@domain.com");
    email.add("example2@domain.com");
    // Adding an invalid emails in list
    email.add("@helloworld.com");
    email.add("12Bye#domain.com");
    // Regular Expression
    String regx = "^[A-Za-z0-9+_.-]+@(.+)$";
    // Compile regular expression to get the pattern
    Pattern pattern = Pattern.compile(regx);
    // Iterate emails array list
    for (String email1 : email) {
      // Create instance of matcher
      Matcher matcher = pattern.matcher(email1);
      System.out.println(email1 + " : " + matcher.matches() + "\n");
    }
  }
}

输出:

example@domain.com : true

example2@domain.com : true

@helloworld.com : false

12Bye#domain.com : false

RFC 5322 方法允许用于电子邮件验证的第三种模式。^[a-zA-Z0-9_!#$%&'\*+/=?{|}~^.-]+@[a-zA-Z0-9.-]+$ 是常规的用于验证电子邮件的表达式。使用了 RFC 允许用于电子邮件格式的所有字符。

例如,

import java.util.*;
import java.util.regex.*;
public class Email_Validation {
  public static void main(String args[]) {
    ArrayList<String> email = new ArrayList<String>();
    email.add("example@domain.com");
    email.add("exampletwo@domain.com");
    email.add("12@domain.com");
    // Adding an invalid emails in list
    email.add("@helloworld.com");
    // Regular Expression
    String regx = "^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$";
    // Compile regular expression to get the pattern
    Pattern pattern = Pattern.compile(regx);
    // Iterate emails array list
    for (String email1 : email) {
      // Create instance of matcher
      Matcher matcher = pattern.matcher(email1);
      System.out.println(email1 + " : " + matcher.matches() + "\n");
    }
  }
}

输出:

example@domain.com : true

exampletwo@domain.com : true

12@domain.com : true

@helloworld.com : false

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 Java 中延迟几秒钟的时间

发布时间:2023/12/17 浏览次数:217 分类:Java

本篇文章主要介绍如何在 Java 中制造程序延迟。本教程介绍了如何在 Java 中制造程序延时,并列举了一些示例代码来了解它。

如何在 Java 中把 Hashmap 转换为 JSON 对象

发布时间:2023/12/17 浏览次数:187 分类:Java

它描述了允许我们将哈希图转换为简单的 JSON 对象的方法。本文介绍了在 Java 中把 Hashmap 转换为 JSON 对象的方法。我们将看到关于创建一个 hashmap,然后将其转换为 JSON 对象的详细例子。

如何在 Java 中按值排序 Map

发布时间:2023/12/17 浏览次数:171 分类:Java

本文介绍了如何在 Java 中按值对 Map 进行排序。本教程介绍了如何在 Java 中按值对 Map 进行排序,并列出了一些示例代码来理解它。

如何在 Java 中打印 HashMap

发布时间:2023/12/17 浏览次数:192 分类:Java

本帖介绍了如何在 Java 中打印 HashMap。本教程介绍了如何在 Java 中打印 HashMap 元素,还列举了一些示例代码来理解这个主题。

在 Java 中更新 Hashmap 的值

发布时间:2023/12/17 浏览次数:146 分类:Java

本文介绍了如何在 Java 中更新 HashMap 中的一个值。本文介绍了如何在 Java 中使用 HashMap 类中包含的两个方法-put() 和 replace() 更新 HashMap 中的值。

Java 中的 hashmap 和 map 之间的区别

发布时间:2023/12/17 浏览次数:79 分类:Java

本文介绍了 Java 中的 hashmap 和 map 接口之间的区别。本教程介绍了 Java 中 Map 和 HashMap 之间的主要区别。在 Java 中,Map 是用于以键值对存储数据的接口,

在 Java 中获取用户主目录

发布时间:2023/12/17 浏览次数:218 分类:Java

这篇文章向你展示了如何在 Java 中获取用户主目录。本教程介绍了如何在 Java 中获取用户主目录,并列出了一些示例代码以指导你完成该主题。

Java 中 size 和 length 的区别

发布时间:2023/12/17 浏览次数:179 分类:Java

这篇文章教你如何知道 Java 中大小和长度之间的区别。本教程介绍了 Java 中大小和长度之间的区别。我们还列出了一些示例代码以帮助你理解该主题。

Java 中的互斥锁

发布时间:2023/12/17 浏览次数:111 分类:Java

了解有关 Java 中互斥锁的一切,在计算机科学领域,互斥或互斥被称为并发控制的属性。每台计算机都使用称为线程的最小程序指令序列。有一次,计算机在一个线程上工作。为了更好地理解,

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便