JavaScript 验证邮箱地址合法性

在Web 应用程序中,经常通过邮箱来进行网站与用户之间的信息交互,如网站通过注册用户的邮箱地址给该用户传递最新资讯。

在注册该网站通行证的时候,一般都需提交用户的邮箱信息,此时,必须验证邮箱地址的有效性来保证信息交互的有效进行。

String 对象的indexOf( )方法返回通过参数传入的字符串出现的开始位置,而邮箱地址必为类似于[email protected] 的结构,在用户提交的标记为邮箱地址的字符串中,通过indexOf("@")和indexOf(".")方法返回值可以判断邮箱地址的有效性。

考察如下代码:[code]<! DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0//EN”
http://www.w3.org/TR/REC-html140/strict.dtd”>

Sample Page!
邮箱地址: [/code]运行上述代码,当文本框中输入格式合法的邮箱地址时,弹出对话框提示输入的邮箱地址合法,如图所示。

脚本代码中核心的语句:var index1=EmailString.indexOf("@"); var index2=EmailString.indexOf(".",index1);第一句获取目标字符串中’@'字符(也可为字符串)最先出现的位置并将结果返回index1 变量,返回-1 表示未搜索到该字符;

第二句从index1 变量(即’@‘字符后面开始)指定的位置开始搜索’.‘字符最先出现的位置,并将结果返回index2 变量,返回-1 表示未搜索到该字符,以确保在’@‘字符后面存在’.'字符。

判断语句:if(index1==-1||index2==-1||index2<=index1+1||index1==0||index2==strLength-1)该句是根据邮箱地址规范设定的条件,如果其中一项不满足,则邮箱地址不合法,反之则合法。

String 对象的indexOf( )方法有个类似的方法,即lastIndexOf( )方法,该方法与indexOf( ) 方法不同点在于其搜索的顺序是由右向左(由后至前),与indexOf( )方法正好相反。

注意:一般而言邮件地址的格式如下:[email protected]_name+后缀,domain_name 为域名标识符,即邮件必须要交付到的邮件目的地的域名;

somebody 为该域名对应的服务器上存在的邮箱用户的id;后缀一般则代表了该域名的性质或地区的代码。

例如:.com、.edu.cn、.gov、.org、.tw 等。