如何判断用户输入的邮箱格式是否正确?

news/2025/3/14 22:36:59/
用户名@网站名-例sina.com、tom.com、yahoo.com.cn……(有些小网站的邮箱在填资料时不认,所以推荐用网站的邮箱)
 
一般都是用<正则表达式>来判断. 什么是正则表达式?
  • 就是用如下特殊符号其组合来代表某个字符(以下符号可以通配所有字符)
    符号	说明
    .	代表除换行符以外的任意字符
    \w	代表字母或数字或下划线或汉字
    \s	代表任意的空白符
    \d	代表数字
    \b	代表单词的开始或结束
    ^	代表字符串的开始
    $	代表字符串的结束
    
    abc120 可以用这样的正则表达式表示: \w\w\w\d\d\d, 或者 \w\w\w\w\w\w 或者 ...... (六个英文句点) 等等...
  • 用如下符号来代表某个可能字符的集合
    [ ]
    
    如电话号码的第n位,一定属于这个集合 [0-9] ,即0到9;某个外国人名字的第n个字母,一定属于这个集合 [a-z A-Z],即26个英文字母的大小写组成的集合
  • 用如下符号来代表 上面所表达的某个字符或某个集合的重复:
    符号	说明
    *	重复零次或更多次
    +	重复一次或更多次
    ?	重复零次或一次
    {n}	重复n次
    {n,}	重复n次或更多次
    {n,m}	重复n到m次
    
  • 然后剩下的符号基本就是原意了,如 邮箱符号 @ 就表示邮箱符号,等号 = 就表示等号, 横杠 - 就表示横杠等

举个例子吧,给你解释一下下面这个判断邮箱格式的正则表达式的意思(下面看不懂的可以查看上面给的各个符号的意义):
^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+\\.[a-zA-Z0-9_-]+$
把上面的表达式分段,并介绍每个字段的意思
1 ^ ;2 [a-zA-Z0-9_-]+ ;3 @ ; 4 [a-zA-Z0-9_-]+ ; 5 \\. ;6 [a-zA-Z0-9_-]+ ;7 $
  • ^ 代表一切判断从此处开始 (段1)
  • [a-zA-Z0-9_-] 方括号表示集合 这个方括内的意思是告诉执行程序的那货(其实就是电脑):嘿,编译器老兄,你帮我看看这个邮箱地址的第一个字符,只要它属于集合[a,z],或者集合[A,Z],或者集合[0,9],或者集合{”_“ , ”-“}的话,你就随时待命,准备执行我下一步的任务;否则,你就可以先下班,别鸟这个邮箱地址了,它的格式肯定是错的
  • + 加号表示重复一次或多次 加号的意思是告诉电脑:嘿,编译器老兄,你顺便帮我看看这个邮箱地址的第二个字符、第三个字符、第四个字符......看看这些字符是不是都属于同上一条的那些集合(即重复)。如果符合,你就再顺便帮我判断第五个字符是不是也属于上条那些集合呗...嘿嘿 (段2)
  • 编译器这时候就疑惑且不高兴了,它反问我一句:尼玛,难道让我一个字符一个字符的一直判断下去?!我多会才能停呀...
  • 这时候我告诉编译器,嗯,记住,当你看到一个字符长得像这个样子的时候,你就可以先停一停了...
  • "@" 艾特符 (段3)
  • 编译器很高兴,于是它就根据给定的邮箱地址,开始一个字符一个字符地判断起来,直到它顺利地看见了”@“(艾特符),这时编译器喜上眉梢,只见他长出一口气,刚准备说:我先歇一会...
  • 这时我告诉编译器:不行不行,工作还没完成呢,你继续帮我判断跟在”@“符号后的那些字符,看看他们是不是属于第一条的那些集合( 段4)...
  • 编译器撅着嘴继续判断起来,然后他一边判断一边又问:那我多会才停下来呢?
  • 我告诉编译器,当你看见这个字符的时候就先停下来
  • ”.“ 英文句号 (段5)
  • 编译器于是继续判断着,奇了怪了这邮箱地址格式一路正确,于是它走到了英文句号跟前(”.“)停下了,看上去有点想罢工的样子了
  • 于是我赶紧说道,老兄,最后一件工作了,真的最后一件了!把跟在英文句号(”.“)之后的那些字符也依次判断一下吧,只要他们仍属于第一条所列的那些集合,你就可以停下了,下班回去嘿咻了... (段6)
  • 编译器此时面露喜色,跟着开始判断起英文句号(".")之后的那些字符来,但是他突然脸一黑,想到:尼玛,要是这个字符有100多个,1000多个,难道我就一直这么判断下去,我不走火入魔了才怪呢!于是他对我说:要是有1000多个字符,难道就让我一个一个判断下去,我根本下不了班了呀!
  • 我说:老兄,不用着急。首先,你不会遇到这么长的字符,其次,记住,只要你看见下面这个字符,就可以彻底下班走人了。
  • 这个字符就是:”$” 刀勒符,它的意思就是告诉编译器,判断条件已经到结尾,一切判断到此为止 (段7)
下面举一个例子:
	
var sletter=document.f1.letter.value; //获取表单对象的值
       if(sletter!=""){var reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/;isok=reg.test(sletter);}if (!isok) {alert("邮箱格式不正确!");return false;}

http://www.ppmy.cn/news/913097.html

相关文章

gmail如何设置邮箱别名

abcdefgooglemail.com和abcdefgmail.com&#xff0c;是同一个邮箱&#xff0c;只是后缀不同。 不管发到哪个后缀&#xff0c;都是可以收到信的。------------------------------ 为abcdefgmail.com增加googlemail.com为别名的具体操作&#xff1a; 登录Gmail------设置-------帐…

常用正则表达式—邮箱(Email)

要验证一个字符串是否为邮箱的话&#xff0c;首先要了解邮箱账号的格式。我尝试过在网上找出一个标准的格式&#xff0c;但是很遗憾我没有找到。我也尝试使用RFC标准来判断邮箱的格式&#xff0c;但是也没有结果。网上些博客说不应该使用RFC标准来验证邮箱是否合法&#xff0c;…

【机器学习算法】奇异值分解(SVD)

文章目录 奇异值分解(SVD)1.理论部分1.1特征分解(ED)1.2 奇异值分解(SVD)求解U和V求解Σ 2.应用部分2.1图像压缩2.2图像数据集成分分析2.3 数据降维(PCA的一种解法) Reference 奇异值分解(SVD) 奇异值分解(Singular Value Decomposition) 是矩阵低秩分解的一种方法&#xff0c;…

Allegro Design Entry HDL 原理图设计专题

&#x1f3e1;《总目录》   &#x1f3e1;《宝典目录》 目录 1&#xff0c;内容概述2&#xff0c;内容目录 1&#xff0c;内容概述 本专题内容详细介绍Allegro Design Entry HDL原理图设计的软件编辑环境。 2&#xff0c;内容目录 Allegro Design Entry HDL&#xff08;OrCAD…

暗黑破坏神【题解】

Description 游戏的主人公有 n 个魔法&#xff0c;每个魔法分为若干个等级&#xff0c;第 i 个魔法有 p[i] 个等级&#xff08;不包括 0&#xff09;&#xff0c;每个魔法的每个等级都有一个效果值&#xff0c;一个 j 级的 i 种魔法的效果值为 w[i][j]&#xff0c;魔法升一级需…

暗黑破坏神2重置版 UI界面管理类分析

前言: 工作关系一直关注暴雪的游戏,这次来分析下暗黑2重置版里的UI界面数据结构。由于游戏有着各种猥琐的反调检测和保护,所以非专业人士只能使用伪调试的方式进行静态分析。 开始工作: 起手一个字符串枚举看看有什么可用的,从暗黑2的旧版客户端了解一下,那就从小地图入…

暗黑破坏神4玩不了怎么办?可能是显卡驱动没更新

《暗黑破坏神4》全面上线后&#xff0c;相信不少玩家&#xff0c;都被游戏中精美而逼真的画面效果震撼了一下。游戏采用了全新的引擎和技术&#xff0c;呈现出一个充满细节和氛围的暗黑世界。游戏中的场景非常多样和广阔&#xff0c;从荒芜的沙漠、雪山、森林、沼泽到古老的城市…

GitHub上的开源复刻:暗黑破坏神2

现在的00后少年可能已经不太了解《暗黑破坏神2》这款由暴雪打造的经典游戏。 该游戏上市的时候&#xff0c;国内个人家用电脑还没有那么普及&#xff0c;网络游戏也没有那么风靡&#xff0c;现在的孩子可能无法想象&#xff0c;那时候网吧里的很多人都是在玩这款单机游戏&…