Java 中的正则表达式电子邮件验证问题
Issues with Regex Email Validation in Java
我正在尝试为 class 做一个基本项目,但我 运行 遇到了问题。验证代码时,输入 "test@test.com" 时有效。但是,当进一步测试并说输入 "test@test.com.com" 时,它仍然 returns 有效。这是代码:
System.out.println("Enter a valid email address: ");
Scanner scan = new Scanner(System.in);
emailAddress = scan.next();
String email_regex = "^[_A-Za-z0-9-\+]+(\.[_A-Za-z0-9-]+)*@"
+ "[A-Za-z0-9-]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,})$";
testString = emailAddress;
b = testString.matches(email_regex);
if (b)
{
System.out.println("The email address \"" + emailAddress + "\" is valid.");
}
else
{
System.out.println("The email address \"" + emailAddress + "\" IS NOT valid.");
}
} while (!b);
它的功能就像它应该的那样,减去知道将 "test@test.com.com" 或任何其他类似的电子邮件格式标记为无效。建议将不胜感激!
编辑: 我将添加我收到的说明和反馈。
说明:电子邮件地址包含@字符。编写一个程序,要求用户输入电子邮件地址并确定它是否是有效地址。这是基于 @ 字符的存在且字符串中没有空格。您无需担心输入单词中的任何其他字符。输出结果 "The word IS an email address" 或 "The word IS NOT an email address"
示例 -
输入:testuser@mydomain.com
输出:这个词是一个电子邮件地址
输入:my123user
输出:这个词不是电子邮件地址
我的反馈:
程序错误地将 test@test.com.com 识别为有效电子邮件。
代码格式不正确,缩进不正确。请确保您的代码使用每组新的大括号(表示范围)正确缩进。
试试下面的正则表达式,它对我有用
String email_regex = "^(([\w-]+\.)+[\w-]+|([a-zA-Z]{1}|[\w-]{2,}))@"
+ "[A-Za-z0-9-]+(\.com|abc\.co|abc\.nz|abc\.org|abc\.net)$";
我正在尝试为 class 做一个基本项目,但我 运行 遇到了问题。验证代码时,输入 "test@test.com" 时有效。但是,当进一步测试并说输入 "test@test.com.com" 时,它仍然 returns 有效。这是代码:
System.out.println("Enter a valid email address: "); Scanner scan = new Scanner(System.in); emailAddress = scan.next(); String email_regex = "^[_A-Za-z0-9-\+]+(\.[_A-Za-z0-9-]+)*@" + "[A-Za-z0-9-]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,})$"; testString = emailAddress; b = testString.matches(email_regex); if (b) { System.out.println("The email address \"" + emailAddress + "\" is valid."); } else { System.out.println("The email address \"" + emailAddress + "\" IS NOT valid."); } } while (!b);
它的功能就像它应该的那样,减去知道将 "test@test.com.com" 或任何其他类似的电子邮件格式标记为无效。建议将不胜感激!
编辑: 我将添加我收到的说明和反馈。
说明:电子邮件地址包含@字符。编写一个程序,要求用户输入电子邮件地址并确定它是否是有效地址。这是基于 @ 字符的存在且字符串中没有空格。您无需担心输入单词中的任何其他字符。输出结果 "The word IS an email address" 或 "The word IS NOT an email address"
示例 - 输入:testuser@mydomain.com 输出:这个词是一个电子邮件地址
输入:my123user 输出:这个词不是电子邮件地址
我的反馈:
程序错误地将 test@test.com.com 识别为有效电子邮件。 代码格式不正确,缩进不正确。请确保您的代码使用每组新的大括号(表示范围)正确缩进。
试试下面的正则表达式,它对我有用
String email_regex = "^(([\w-]+\.)+[\w-]+|([a-zA-Z]{1}|[\w-]{2,}))@"
+ "[A-Za-z0-9-]+(\.com|abc\.co|abc\.nz|abc\.org|abc\.net)$";