用户名@网站名-例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;}

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

  1. js luhn算法_判断用户输入的银行卡号是否正确--基于Luhn算法的格式校验

    开发中,有时候,为了打造更好的用户体验,同时减轻服务器端的压力,需要对于一些如,手机号码,银行卡号,身份证号码进行格式校验 下面是判断银行卡号输入是否正确的代码(基于Luhn算法的格式校验): iOS ...

  2. java输入正确的信息_判断用户输入的信息是否正确

    package com.Embed.util; import java.sql.Connection; import java.sql.DriverManager; import java.text. ...

  3. 判断邮箱 格式是否正确

    /练习:判断邮箱格式是否正确 //1.有且只能有一个@ contains @ indexof @=lastindexof //2.不能以@开头 indexof != 0 //3.@之后至少有一个. / ...

  4. 用户输入邮箱,验证邮箱格式是否正确(验证用户输入的邮箱地址中是否含有字符'@')

    要求:用户输入邮箱,验证邮箱格式是否正确(验证用户输入的邮箱地址中是否含有字符'@'). 目的:掌握邮箱验证控件的原理和方法. #include<stdio.h> #include< ...

  5. html正则邮箱格式,JS正则表达式判断邮箱格式是否正确

    用indexOf()函数也可判断邮箱格式中是否可以包含"@",看上去似乎可以判断成功了,但稍懂点JS的一看就知道问题出在哪儿?就连我这JS菜鸟也发现问题了. 举个例子,一般的邮箱格 ...

  6. 判断用户输入的日期是否为当前日期

    应用java.util.Calendar类实现,首先使用该类的getInstance()方法来获取系统当前时间的日历对象,再使用该对象中提供的方法获得当前时间 创建一个当前时间的Calendar对象 ...

  7. python编写一个程序、输入一个数判断其是偶数还是奇数_编写一个程序,判断用户输入的整数是偶数还是奇数。 (7.0分)_学小易找答案...

    [其它]已知info=[1,2,3,4,5],请通过两种编程方法,将列表变成info=[5,4,3,2,1] (6.0分) [其它]阅读下面的程序,分析代码是否可以编译通过,如果能编译通过,请列出运行 ...

  8. 判断用户输入的数是正数还是负数

    编写一个程序,判断用户输入的数是正数还是负数 der_1 = (lambda x:"正数" if x > 0 else "负数" if x < 0 ...

  9. 【JS】判断用户输入的用户名首位是否是字母

    判断用户输入的用户名首位是否是字母 https://codepen.io/sam9029/pen/xxWrGRw 思路: 方法1. 正则 /[a-z]/i 方法2. ASCII码 A-Z的ascii码 ...

最新文章

  1. python与数据思维基础笔记_Python小课笔记--Python基础:数据和函数(二)
  2. 学校通用计算机保护,浅谈学校计算机教室软件系统的保护.docx
  3. Mysql 死锁过程及案例详解之显式与隐式锁Explicit Table Lock Implicit Table Lock
  4. mysql锁表查询_Mysql数据库锁情况下开启备份导致数据库无法访问处理分享
  5. 位运算-查找数组中唯一成对的数
  6. [计算机网络][总结][常见问题][TCP][三次握手][四次挥手]
  7. Flask自定义时间过滤器
  8. openlayer右键菜单_OpenLayers添加右键菜单
  9. 添加类库引用后,命名空间出错的解决方案
  10. 产品配件类目税目分类_商品及税收分类编码选择技巧
  11. Linux ida 代码,[分享][下载]IDA Pro 7.5 Linux Demo
  12. PSP战神 斯巴达勇士 游戏ISO文件和完美通关存档和金手指
  13. Ricequant 平台入门--回测第一个量化交易策略
  14. 计算机网络网线制作教案,制作网线教案.doc
  15. CSS 使用多张背景图
  16. php中alight是什么意思,进阶PHP需要注意的一些点
  17. C++ 复数计算器 简单代码
  18. 找一找马里奥-第14届蓝桥杯STEMA测评Scratch真题精选
  19. 解析少儿编程中的运用的科技语言
  20. 凯捷Java二面问题总结

热门文章

  1. 使用Zerotier实现免费内网穿透
  2. java热敏POS打印机编程
  3. 企业级无线渗透之PEAP
  4. 未来几年学什么设计更有前途?
  5. Cesium实时目标跟踪最新特效教程系列1—实时发亮直线跟踪移动目标
  6. 五个成人必看的故事!
  7. 创宇区块链|Inverse Finance 安全事件分析
  8. bch verilog代码_基于FPGA的多进制BCH编码
  9. Windows7安装mysql-压缩包方式
  10. 关于iPhone 6S你想知道的一切