JavaScript 如何验证电子邮件地址而不使用正则表达式

JavaScript 如何验证电子邮件地址而不使用正则表达式

JavaScript中的电子邮件验证是确保用户输入的电子邮件地址格式正确且有效的过程。通常在表单提交到服务器之前,使用JavaScript在客户端上完成此操作。

有几种方法可在JavaScript中执行电子邮件验证,包括使用字符串方法、正则表达式和库。这些方法可以检查电子邮件地址中是否存在某些字符,如“@”符号和“.”字符,以及电子邮件地址是否包含有效的字符,如字母、数字、句号、下划线和连字符。然而,这些方法不会检查域名是否有效或存在。

要考虑电子邮件地址有效,必须具备以下组件:

  • 用户名: 它是出现在@符号之前的唯一地址。用户名可以包含字母、数字和某些特殊字符(例如.,_,-)。
  • @符号: 它将用户名与域名分隔开。
  • 域名: 它是出现在@符号之后的电子邮件地址的一部分。域名可以包含字母、数字和某些特殊字符。域名必须至少包含一个句点(.)来分隔不同层次的域。例如,geeksforgeeks.org具有两个级别:geeksforgeeks和org)。
  • 顶级域名: 它是出现在最后一个句点后面的域名的一部分(例如.com,.edu,.gov)。

    此外,还有一些电子邮件地址的惯例和附加规则,例如:

  • 某些域名可能有子域(例如write.geeksforgeeks.org)。

  • 电子邮件地址不区分大小写,即字符可以是大写或小写。
  • 一些特殊字符如“+”或“_”是允许的。

    使用字符串方法验证电子邮件地址:

在客户端上使用JavaScript进行电子邮件验证可以在不使用正则表达式的情况下,通过使用字符串方法和逻辑条件的组合来检查用户输入的电子邮件地址是否格式正确。

此代码通过使用indexOf()方法查找“@”符号的位置来检查电子邮件地址中是否存在“@”符号。如果“@”符号不存在或位于电子邮件地址的第一个字符位置,则该方法返回false,表示电子邮件地址无效。

使用lastIndexOf()方法在电子邮件地址中查找“.”字符的最后一个出现位置。如果“.”字符不存在,或者出现在“@”符号之前,或者出现在电子邮件地址的最后一个字符位置,则此方法返回false,表示电子邮件地址无效。

这种方法确保电子邮件地址具有正确的格式,即用户名@域名.扩展名。

方法:

  1. 使用indexOf()方法检查电子邮件地址是否包含“@”符号。indexOf()方法返回指定字符串值第一次出现的索引,如果未找到该值则返回-1。如果返回值为-1,表示电子邮件地址不包含“@”符号;如果返回值为0,表示“@”符号位于第一个位置,因此验证失败。
  2. 使用lastIndexOf()方法检查电子邮件地址是否包含“.”符号。lastIndexOf()方法返回指定字符串值最后一次出现的索引,如果未找到该值则返回-1。如果返回值为-1,表示电子邮件地址不包含“.”符号;如果返回值为0,表示“.”符号位于第一个位置,因此验证失败。
  3. 通过比较“@”符号和“.”符号的索引,检查“.”符号是否在“@”符号之后,如果不在,则验证失败。
  4. 检查“.”符号之后必须有内容,否则验证失败。
  5. 最后,使用indexOf()方法检查电子邮件地址是否包含空格,如果返回值不为-1,表示电子邮件地址包含空格,则验证失败。

如果以上所有条件都满足,则电子邮件地址被视为有效,并且验证通过。

示例: 在本示例中,我们将实现上述方法。

HTML

<!DOCTYPE html> 
<html> 
  
<head> 
    <title>Validate Email Address</title> 
  
    <script type="text/javascript"> 
  
        // JavaScript code for email validation 
        // without using regular expression 
        function validateEmailAddress(emailAddress) { 
            var atSymbol = emailAddress.indexOf("@"); 
            var dotSymbol = emailAddress.lastIndexOf("."); 
            var spaceSymbol = emailAddress.indexOf(" "); 
  
            if ((atSymbol != -1) && 
                (atSymbol != 0) && 
                (dotSymbol != -1) && 
                (dotSymbol != 0) && 
                (dotSymbol > atSymbol + 1) && 
                (emailAddress.length > dotSymbol + 1) && 
                (spaceSymbol == -1)) { 
                alert("Email address is valid."); 
                return true; 
            } else { 
                alert("Error !!! Email address is not valid."); 
                return false; 
            } 
        } 
    </script> 
</head> 
  
<body> 
    <h1>Please enter your email address below</h1> 
    <form name="the form" action="" method="post" 
        onSubmit="var the_result = validateEmailAddress(this.email_address.value); return the_result;"> 
        Email address: <input type="text" name="email_address"> 
        <input type="submit" value="Submit form"> 
    </form> 
</body> 
  
</html> 

输出:

JavaScript 如何验证电子邮件地址而不使用正则表达式

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程