java邮箱判断合法正则表达式(JAVA中,用正则表达式识别邮箱是否正确)

本文目录
- JAVA中,用正则表达式识别邮箱是否正确
- 如何用java检验电子邮箱格式的合法性要用到String的方法来判断
- java 中如何判断邮件格式的正确性
- java中应用正则表达式判断邮箱格式,如果用户输入格式错误,提醒用户重新输入若输入正确,直接执行
- 怎么用JAVA代码实现验证邮箱地址是否合 需要直接贴代码
- java正则表达式怎么书写
- 用正则表达式,验证是否为合法Email,正常输出不合法当做异常处理
JAVA中,用正则表达式识别邮箱是否正确
String regex=“[a-zA-Z0-9_\\-\\.]+@[a-zA-Z0-9]+(\\.(com|cn|org|edu|hk))“;
如果让他识别sina、qq、163的邮箱,则
String regex=“[a-zA-Z0-9_\\-\\.]+@(sina|qq|163)+(\\.(com|cn|org|edu|hk))“;
如何用java检验电子邮箱格式的合法性要用到String的方法来判断
自己写逻辑验证的方式可以做到。我写了下面的:
public static boolean validateEmail(String email) {
boolean flag = false;
int pos = email.indexOf(“@“);
if (pos == -1 || pos == 0 || pos == email.length() - 1) {
return false;
}
String strings = email.split(“@“);
if (strings.length != 2) {// 如果邮箱不是xxx@xxx格式
return false;
}
CharSequence cs = strings;
for (int i = 0; i 《 cs.length(); i++) {
char c = cs.charAt(i);
if (!Character.isLetter(c) && !Character.isDigit(c)) {
return false;
}
}
pos = strings.indexOf(“.“);// 如果@后面没有.,则是错误的邮箱。
if (pos == -1 || pos == 0 || pos == email.length() - 1) {
return false;
}
strings = strings.split(“.“);
for (int j = 0; j 《 strings.length; j++) {
cs = strings[j];
if (cs.length() == 0) {
return false;
}
for (int i = 0; i 《 cs.length(); i++) {//如果保护不规则的字符,表示错误
char c = cs.charAt(i);
if (!Character.isLetter(c) && !Character.isDigit(c)) {
return false;
}
}
}
return true;
}
这个效率也不会差很多,不过我推荐matches方法,经过测试的,matches匹配方式运行10000次的时间比上面的时间少了20毫秒。
java 中如何判断邮件格式的正确性
如果是服务器后台代码的话呢,可以用正则表达式比如
String RULE_EMAIL = “^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$“;
前台页面的话呢,某些前端框架都是有写好邮箱的输入框的
java中应用正则表达式判断邮箱格式,如果用户输入格式错误,提醒用户重新输入若输入正确,直接执行
Pattern p = Pattern.compile(“a*b“);
Matcher m = p.matcher(“aaaaab“);
boolean b = m.matches();
这是调用顺序 第一行括号里面是正则表达式。至于正则表达式怎么写 ,你直接百度就好了 有规则的 还有很多别人写好的。最后一行如果是true就代表匹配成功
怎么用JAVA代码实现验证邮箱地址是否合 需要直接贴代码
import java.util.Scanner;
public class Test {
public static void main(String args) {
Scanner sc = new Scanner(System.in);
System.out.println(“输入你要验证的邮箱:“);
String mail = sc.next();
//@出现的下标
int atIndex = 0;
//.出现的下标
int fullIndex = 0;
//第一次出现的下标
atIndex = mail.indexOf(’@’, 0);
//第一次出现的下标
fullIndex = mail.indexOf(’.’, 0);
//判断@是否出现.后面
if(atIndex 》= fullIndex) {
System.out.println(“此邮箱不合法!“);
System.exit(0);
}
//判断@是否只有一个
if(mail.indexOf(’@’, 0) != mail.lastIndexOf(’@’)) {
System.out.println(“此邮箱不合法!“);
System.exit(0);
}
//判断.是否只有一个
if(mail.indexOf(’.’, 0) != mail.lastIndexOf(’.’)) {
System.out.println(“此邮箱不合法!“);
System.exit(0);
}
//判断@前面是否是1到40个字符
if(!(atIndex 》= 1 && atIndex 《= 40)) {
System.out.println(“此邮箱不合法!“);
System.exit(0);
}
//判断@前面是否为字母
for (int i = 0; i 《 atIndex; i++) {
if (!((mail.charAt(i) 》= ’a’ && mail.charAt(i) 《= ’z’)||(mail.charAt(i) 》= ’A’ && mail.charAt(i) 《= ’Z’))) {
System.out.println(“此邮箱不合法!“);
System.exit(0);
}
}
//判断@到.是否为只能是1到40个字符
if(!(fullIndex - atIndex - 1 》= 1 && fullIndex - atIndex - 1 《= 40)) {
System.out.println(“此邮箱不合法!“);
System.exit(0);
}
//判断@到.直接的是否为字母或数字
for (int i = atIndex+1; i 《 fullIndex; i++) {
if (!((mail.charAt(i) 》= ’a’ && mail.charAt(i) 《= ’z’)||(mail.charAt(i) 》= ’A’ && mail.charAt(i) 《= ’Z’)||(mail.charAt(i)》=’0’&&mail.charAt(i)《=’9’))) {
System.out.println(“此邮箱不合法!“);
System.exit(0);
}
}
//判断.后面的是2到3长度的字符
if (!(mail.length() - fullIndex - 1 》= 2 && mail.length() - fullIndex -1 《= 3) ){
System.out.println(“此邮箱不合法!“);
System.exit(0);
}
//判断.后面的是英文字母
for (int i = fullIndex+1; i 《 mail.length(); i++) {
if (!((mail.charAt(i) 》= ’a’ && mail.charAt(i) 《= ’z’)||(mail.charAt(i) 》= ’A’ && mail.charAt(i) 《= ’Z’))) {
System.out.println(“此邮箱不合法!“);
System.exit(0);
}
}
System.out.println(“此邮箱是合法的!“);
}
}
java正则表达式怎么书写
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
下面介绍具体的方法。
1、步骤一 : 新建一个工程和类
我们在这个类中开发相关的代码,先看看 java.util.regex 这个包吧。
2、步骤二 : 类 Pattern 的使用
类Pattern , 其一个对象就代表一种指定的正则表达式,我们通过这个类和一些正则表达式的规则来生成自己想要的字符串匹配规则!
这个类,你无法通过 new 来创建对象,其提供了一个静态方法 compile(“正则规则串“)来创建对象, 比如我们想要一个以 “java“ 开头的字符串匹配规则,我们会用如下代码 Pattern 对象 :
Pattern pattern = Pattern.compile(“^java“);
注意 : ^ 这个符号是正则表达式中的规则,表示字符串的开头!关于其他规则,我们后面会有相关经验给大家逐一介绍!
3、步骤三 : 类 Matcher 的使用
类 Matcher, 代表一个串在特定Pattern对象下的匹配结果,我们通过这个结果可以知道这个串是否符合我们的要求 (我们的具体要求在 Pattern 对象中体现!)。使用方法为 :
// 先构建一个特定的 Pattern 对象Pattern pattern = Pattern.compile(“^java“);
// 调用 Pattern 对象的 matcher 方法,传入一个串,得到匹配结果!
Matcher matcher = javaPrefixPattern.matcher(“一个字符串“);
4、步骤四 : 测试和总结
运行代码,查看程序运行效果!正则表达式的整个使用框架就是这样,其不同的应用场景基本就是不同的匹配规则!
总结 :正则表达式的彪悍,主要在于其很多成熟的规范的语义规则,通过这些规则的灵活使用,我们可以把一种复杂的匹配需求用一个规则串表达出来!
用正则表达式,验证是否为合法Email,正常输出不合法当做异常处理
String webPage=“anningkf@163.com“;
String regex=“^\\w+(\\.|\\w+)*\\w+(\\.\\w+)*@\\w+\\w+\\.\\w+$“
Pattern pa=Pattern.compile(regex);
Matcher ma=pa.matcher(webPage);
if(ma.find){
这个webPage是正确的邮箱地址
}else{
这个webPage是错误的邮箱格式
}
下面是参考资料。正则我改了下,下面的条件都符合了。嘿嘿。加油~~
====================================
合法E-mail地址:
1. 必须包含一个并且只有一个符号“@”
2. 第一个字符不得是“@”或者“.”
3. 不允许出现“@.”或者.@
4. 结尾不得是字符“@”或者“.”
5. 允许“@”前的字符中出现“+”
6. 不允许“+”在最前面,或者“+@”
正则表达式如下:
-----------------------------------------------------------------------
^(\w+((-\w+)|(\.\w+))*)\+\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$
-----------------------------------------------------------------------
字符描述:
^ :匹配输入的开始位置。
\:将下一个字符标记为特殊字符或字面值。
* :匹配前一个字符零次或几次。
+ :匹配前一个字符一次或多次。
(pattern) 与模式匹配并记住匹配。
x|y:匹配 x 或 y。
[a-z] :表示某个范围内的字符。与指定区间内的任何字符匹配。
\w :与任何单词字符匹配,包括下划线。
$ :匹配输入的结尾。

更多文章:
易语言网页api接口怎么调用(易语言,怎么读取网页json的api)
2026年10月11日 08:00
majority of(the majority of 和 a majority of的区别以及用法例句)
2026年10月11日 07:40
another time(another time和other time的区别)
2026年10月11日 05:00








