学习HTML,表单是一个很重要的知识,而表单最常用的可能就是表单的验证了;下面我介绍验证邮箱的一种方法:

先上代码:(注:这个代码是可以运行的,可以自己试试,把重点放在js和表单里面!)

<!DOCTYPE html>
<html><head><title>表单之邮箱验证.html</title><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="this is my page"><meta http-equiv="content-type" content="text/html; charset=UTF-8"><style type="text/css">body{background-image: url(https://imgchr.com/content/images/system/home_cover_1552414407320_3a5f92.jpg);background-repeat: no-repeat;/* 当内容高度大于图片高度时,背景图像的位置相对于viewport固定 */    background-attachment: fixed;  /*此条属性必须设置否则可能无效*/    /* 让背景图基于容器大小伸缩 */   background-size: cover;  /* 设置背景颜色,背景图加载过程中会显示背景色 */   background-color: #CCCCCC;}#user_reg{font-family: 微软雅黑;font-size: 40px;text-align: center;margin-top: 200px;}form{width: 600px;                    /*设置宽度,方便使其居中*/margin: 40px auto auto auto;  /*上右下左*/font-size: 25px;}input{height: 30px;width: 14em;font-size: 20px;}#username[value]{color: gray;}#username1[value]{color: black;}</style></head><script type="text/javascript">//onblur失去焦点事件,用户离开输入框时执行 JavaScript 代码://函数:验证邮箱格式function isEmail(strEmail){//定义正则表达式的变量:邮箱正则var reg=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;console.log(strEmail);//文本框不为空,并且验证邮箱正则成功,给出正确提示if(strEmail != null && strEmail.search(reg) != -1){document.getElementById("test_user").innerHTML = "<font color='green' size='4px'>√邮箱格式正确!</font>";}else{document.getElementById("test_user").innerHTML = "<font color='red' size='4px'>邮箱格式错误!</font>";}}</script><body><div id="user_reg">验证邮箱:</div><form action="" method="post" name="form"><table><tr><td>请输入账号:</td><td><input type="text" id="username" name="username" value="只能用邮箱注册" onclick="username.value='',username.id='username1'" onblur="isEmail(this.value)"/></td><td id="test_user">&nbsp;</td></tr></table></form>
</body>
</html>

这是效果图:

来看下主要代码:

HTML部分:

<body><div id="user_reg">验证邮箱:</div><form action="" method="post" name="form"><table><tr><td>请输入账号:</td><td><input type="text" id="username" name="username" value="只能用邮箱注册" onclick="username.value='',username.id='username1'" onblur="isEmail(this.value)"/></td><td id="test_user">&nbsp;</td></tr></table></form>
</body>

简单分析下:

1. 首先是提示用户,该文本框只能填写邮箱,用 value 设置初始值,显示在框内;添加事件onclick ,当用户鼠标单击时触发,使其文本框的值置为 “” ,并且使其ID改变,方便改变样式(要看效果,可以自己拷贝代码运行)。

补充下:不过,我不建议使用这种方法,因为后来我了解到 input 有个属性可以轻松解决这个问题:spaceholder,属性适用于以下类型的 <input> 标签:text, search, url, telephone, email 以及 password。提示(hint)会在输入域为空时显示出现,会在输入域获得焦点时消失。详见(w3c文档):http://www.w3school.com.cn/html5/html_5_form_attributes.asp

2. 然后添加onblur 事件,当焦点离开该文本框时触发事件,作用就JS 里面在详解。

3.后面还有个格子<td id="test_user">&nbsp;</td>,是为了显示验证结果的,当然你也可以用 alert("提示信息") 显示验证结果。

4.如果这个方法要在提交表单前验证,并且带回返回值,应该还要在定义函数时加上 return 语句,并且触发事件要这样写:

"return  isEmail(this.value)" ,这样当验证成功时,返回true,可以提交表单;验证失败,返回false,禁止其提交表单。(详见我的另一篇文章:https://blog.csdn.net/weixin_41287260/article/details/83061037)

JavaScript 部分:

<script type="text/javascript">//onblur失去焦点事件,用户离开输入框时执行 JavaScript 代码://函数:验证邮箱格式function isEmail(strEmail){//定义正则表达式的变量:邮箱正则var reg=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;console.log(strEmail);//文本框不为空,并且验证邮箱正则成功,给出正确提示if(strEmail != null && strEmail.search(reg) != -1){document.getElementById("test_user").innerHTML = "<font color='green' size='4px'>√邮箱格式正确!</font>";}else{document.getElementById("test_user").innerHTML = "<font color='red' size='4px'>邮箱格式错误!</font>";}}</script>

简单分析下:

1. 先看下函数名:isEmail(strEmail) ,是含参数的,由调用函数那里我们可以知道strEmail 的值是这个文本框的value ;而且

我这里也用console.log(strEmail); 进行验证了,(当然alert(strEmail)也可以,看个人喜好吧!)。

当然,你也可以定义不含参的函数:isEmail( );定义时用var username = document.getElementById("username1").value;

也可以得到同样的效果。

2. 然后定义邮箱正则,这个要是你足够厉害可以去琢磨,但是火候不够就去百度搜,别人已经找了一大堆验证各种问题的正则表达式。

3.验证正则我这里用的是:strEmail.search(reg) != -1 ,该语句是验证通过的语句。当然你也可以用  reg.test(strEmail) 来验证,通过是返回true。

4.如果文本框不为空,并且验证邮箱通过,在(上面我说个的那个)表格里给出(绿色的)验证正确提示,否则则给出(红色)验证错误提示。

来看看效果怎么样吧:

这是原始页面(请注意看里面的字是灰色的):

下面这张是点击文本框后的图(忽略截图大小问题):文本框的字消失了

填写非邮箱内容后,右侧给出红色错误提示:

填写邮箱格式信息:右侧给出绿色正确提示:

the end。

2018.12.8更新

提供个正则文档,有需要可以参考下:

链接:https://pan.baidu.com/s/1_1pxOIkEhOlTsxSnTRL9cg 
提取码:gpx8 
复制这段内容后打开百度网盘手机App,操作更方便哦。

2019年9月25日更新:

添加测试地址: https://codepen.io/yansheng836/pen/pozYaEv,注:背景使用了一张在线照片,和文中照片不同。

HTML表单之邮箱验证相关推荐

  1. Vue+Element动态生成新表单并添加验证

    Vue+Element动态生成新表单并添加验证 首先,有这样一个需求,表单中默认有表单项,点击新增,会多出一项. 点击之后 官方文档中有写用v-for来实现新增表单,但是那是单表单的新增,现在多表单的 ...

  2. html form提交前验证,form表单提交前验证实现方法

    form表单提交前验证实现方法2017-11-26 20:54 form表单提交是网站中最常见的,基本上所有的网站都会用到. 除非你就一些静态网页,仅仅是展示,而不需要互动,所以不需要提交表单. 但是 ...

  3. ASP.NET 完成基于表单的身份验证

    实现:验证用户身份成功,并登陆后台Admin文件夹里的index.aspx后台管理首页面,否则禁止匿名用户访问项目中的Admin文件夹里的任何一个文件.   步骤一: 在根目录下的web.config ...

  4. php 表单提交及验证 tp,ThinkPHP表单自动提交验证实例教程

    ThinkPHP表单自动提交验证实例教程 附加规则 配合验证规则使用,包括: function 使用函数验证,前面定义的验证规则是一个函数名 callback 使用方法验证,前面定义的验证规则是一个当 ...

  5. 傻瓜教程:asp.net(c#) 如何配置authentication,完成基于表单的身份验证

    傻瓜老师又来了,本讲座报以学以致用,师傅带进门 修行靠个人的精神,不深入探讨,还请多指教~ 这堂课将的是基于表单的身份验证,其实某些时候,用于验证身份的账户和密码并不需要存在数据库或配置文件里,这时 ...

  6. ajax注册表单用户名实时验证,Ajax注册表单用户名实时验证..doc

    Ajax注册表单用户名实时验证. Ajax注册表单用户名实时验证 1.1.1 摘要 很多时候在网站上注册时,我们会发现,注册表单通常需要检查用户名和电子邮件地址的可用性:从而确保用户之间不拥有相同的用 ...

  7. abap视图字段限制_在 Laravel 控制器中进行表单请求字段验证

    在 Web 应用中,用户提交的数据往往是不可预测的,因此一个非常常见的需求是对用户提交的表单请求进行验证,以确保用户输入的是我们所期望的数据格式.很多 Web 框架都对此功能专门提供了工具集,Lara ...

  8. glassfish hk2_使用GlassFish 3.1.2.2和Primefaces 3.4的JDBC领域和基于表单的身份验证

    glassfish hk2 我的博客上最受欢迎的帖子之一是有关JDBC安全领域和带有Primefaces的GlassFish上基于表单的身份验证的简短教程. 在收到有关它不再适用于最新的GlassFi ...

  9. java jaas_基于Java JAAS表单的身份验证

    java jaas 使用JAAS实现登录模块是一个高级主题,而且大多数开发人员也很少有机会参与这种开发. 但是JAAS登录模块的基本实现不是那么难实现,这是因为我打算将其发布. 在这里,我正在解释如何 ...

最新文章

  1. 2022-2028年中国有机硅室温胶行业市场运营格局及发展趋向分析报告
  2. php solr 更新数据类型,Solr更新文档数据
  3. dubbo源码解析-集群容错架构设计
  4. python学习内容大全_python学习内容大全
  5. LAMP+LNMP(四)PHP安装实践
  6. get请求报500_http请求和响应的全过程
  7. 2020年,.NET Core起飞在即,最强日志分析ELK还不会?
  8. AdaX:一个比Adam更优秀,带”长期记忆“的优化器
  9. ARIMA模型的介绍
  10. html登录页面的校验控件,HTML5一款有趣智能的密码输入界面控件
  11. 火速拿来用!对比 12,000 个 Vue.js 开源项目发现最实用的 TOP45!
  12. React-组件生命周期
  13. php 获取TZ时间格式
  14. 弹框中的elment-form在弹框重新打开后,怎么初始化验证信息
  15. USB协议介绍二 传输
  16. 华为NP课程笔记27-QINQ概述
  17. 《21天学通C语言(第7版)》一6.4 小 结
  18. Android生成PDF文件
  19. Java程序员面试分类真题(后附答案解析)
  20. 游戏开发、安卓、IOS知识概括

热门文章

  1. 最佳教育:只要把一件事情做好,人生就能够成功
  2. PyTorch单机多卡分布式训练教程及代码示例
  3. F4/F7飞控betaflight固件烧写,地面站 BF无法读取、不识别、未发现等飞控疑难杂症问题解决与驱动安装
  4. 软件测试行业的未来趋势及规划
  5. WooCommerce Product Feed指南 – Google Shopping和Facebook[2022]
  6. SaaS-HRM(3)企业部门管理前后台
  7. 【STC12C5A60S2】TOF250(TTL)基于51系列开发板的运用
  8. 自动驾驶中雷达感知:时域关系的充分利用
  9. C++数据类型 浅显理解
  10. 云日记个人中心项目思路