正则表达式表单校验实例

news2025/1/16 14:03:52

描述

一个简单的注册页面,对输入框进行了简单的正则表达式校验

代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		
		<link rel="stylesheet" href="css/index2.css" />
		<script type="text/javascript" src="js/index2.js" ></script>
	</head>
	<body>
		
		<h2> 用户注册 </h2>
		<form action="check.html" method="post" name="frmReg" id="frmReg" onsubmit="return checkForm()"></form>
		
		<div class="container">
			<div>
				<label>用户名:</label>
				<input type="text" name="txtUn"  form="frmReg" 
					onfocus="showInfo(this,0)" 
					onblur="check(this,0)"/>
				<span class=""></span>
			</div>
			
			<div>
				<label>密码:</label>
				<input type="text" name="txtPwd1" form="frmReg" 
				onfocus="showInfo(this,1)"
				onblur="check(this,1)" />
				<span></span>
			</div>
			
			<div>
				<label>确认密码:</label>
				<input type="text" name="txtPwd2" form="frmReg" 
					onfocus="showInfo(this,2)"
					onblur="check(this,2)"/>
				<span></span>
			</div>
			
			<div>
				<label>手机:</label>
				<input type="text" name="txtPhone"  form="frmReg" 
					onfocus="showInfo(this,3)"
					onblur="check(this,3)"/>
				<span></span>
			</div>
			
			<div>
				<label>邮箱:</label>
				<input type="text" name="txtEmail"  form="frmReg" 
					onfocus="showInfo(this,4)"
					onblur="check(this,4)" />
				<span></span>
			</div>
			
			<div>
				<label>性别:</label>
				<input type="radio" name="radS" id="radM" value="M" checked form="frmReg"/><label for="radM"></label>
				<input type="radio" name="radS" id="radF" value="F"  form="frmReg"/><label for="radF"></label>				
			</div>
			
			<div>
				<label>籍贯:</label>
				<select name="selSheng" form="frmReg">
					<option value="0">安徽</option>
					<option value="1">上海</option>
					<option value="2">北京</option>
					<option value="3">广西</option>
					<option value="4">山东</option>
				</select>
				<select name="selShi" form="frmReg">
					<option value="0">安庆</option>
					<option value="1">蚌埠</option>
					<option value="2">巢湖</option>
					<option value="3">池州</option>
				</select>
				<select name="selXian" form="frmReg">
					<option value="0">安庆市</option>
					<option value="1">怀宁县</option>
					<option value="2">潜山县</option>
					<option value="3">宿松县</option>
					<option value="3">太湖县</option>
				</select>
				<span></span>
			</div>
			
			
						
			<div>
				<label>&nbsp;</label>
				<input type="checkbox" name="chkXY" id="chkXY" form="frmReg"/>
				<label for="chkXY"> 同意 XXX 协议</label>		
			</div>
			
			<div>
				<label>&nbsp;</label>
				<input type="image" name="btn1"  src="img/register.jpg"  form="frmReg"
						onclick="  return  checkForm(); " />
			</div>
		</div>
		
		
		
	</body>
</html>


h2{
	text-align: center;
}


.container
{
	width: 650px;
	padding: 10px;
	margin: 20px auto;
	border: #F00 solid 1px;
	/**/
	font-size: 14px;
	font-family: "微软雅黑";
}

.container>div
{
	padding-top: 8px;
	padding-bottom: 5px;
	background-color: #eeFFee ;
	margin-bottom: 5px;
}

.container>div>*
{
	display: inline-block;
	vertical-align: middle;
}


/*********************************************** 文字说明 : <label> ****/
.container>div>label:first-child
{
	width: 80px;
	text-align: right;	
}


/*********************************************** 文本框  ****/
.container>div>input[name^="txt"]
{
	width: 200px;
	height: 24px;
	padding-top: 2px;
	padding-bottom: 2px;
	padding-left: 4px;
	border: #ddddee solid 1px;
	border-radius: 3px;
}


/*********************************************** 提示信息 <span>  ****/

.container>div>span
{
	height: 20px;
	line-height: 20px;
	padding-right: 5px;
	padding-left: 20px;
	border: #999 solid 1px;
	color: #666;
	font-size: 12px;
	background: #fefefe   url(../img/info.jpg) no-repeat   2px center;
	background-size: 14px 14px;
	/**/
	display: none;
}

/****************************************************** 用户输入【错误】时的提示信息 **/
.container>div>span.clsSpanError
{
	border: #F99 solid 1px;
	background: #fFeeee  url(../img/error.gif) no-repeat   2px center;
	color: #F66;
	background-size: 14px 14px;
}

/****************************************************** 用户输入【正确】时的提示信息 **/
.container>div>span.clsSpanRight
{
	border: #0d0 solid 1px;
	background: #eeFFee  url(../img/right.gif) no-repeat   2px center;
	color: #0a0;
	background-size: 14px 14px;
}


/***************************************************** 验证码 和 图片  ****/

.container>div>input[name="tYzm"]
{
	width: 60px;
	height: 30px;
	line-height: 30px;
}



/*****************************************************  图片按钮   ****/


.container>div>input[type="image"]
{
	width: 120px;
	height: 40px;
}
var info=new Array(
	
	new Array("用户名为6-18位字母、数字组成","用户名格式错误","格式正确"),
	new Array("密码由6-12位数字、字符、特殊符号组成","密码格式错误","格式正确"),
	new Array("确认密码必须和密码一致","两次密码输入不一致","格式正确"),
	new Array("11位手机号码","手机号格式错误","格式正确"),
	new Array("请输入您的常用邮箱","邮箱格式错误","邮箱格式正确")	
	
)

var reg=new Array(
	
	/^[a-zA-Z0-9]{6,18}$/,
	/^.{6,12}$/,
    /^.{6,12}$/	,
    /^\d{11}$/,
    /^\w+@\w+\.\w+$/
	
)

var flag=new Array(
	
	false,
	false,
	false,
	false,
	false	
)


function showInfo(obj,index)
{
	
	 //找到当前文本框对象的下一个元素
	 var span=obj.nextElementSibling;
	 
	 span.innerHTML=info[index][0];
	 
	 span.className="";//清空正确或错误的样式
	 
	 span.style.display="inline-block";	
	 
}


function check(obj,index)
{
	//获得当前文本框的值
	var value=obj.value;
	
	var span=obj.nextElementSibling;
	
	//验证当前的文本框的值是否符合正则要求
	if(reg[index].test(value) )
	{
		//是不是确认密码这一列
		  if(index==2)  //确认密码 
		  {
		  	   var pwd=document.getElementsByName("txtPwd1")[0].value;
		  	  // 
		  	   //确认密码要确定两次密码是否相同
		  	   if(pwd==value)
		  	   {
		  	   	     span.innerHTML=info[index][2];
		  	   	     span.className="clsSpanRight";
		  	   	     flag[index]=true;
		  	   	     
		  	   }
		  	   else
		  	   {
		  	         span.innerHTML=info[index][1];
		  	         span.className="clsSpanError";
		  	          flag[index]=false;
		  	   }
		  	     
		  }
		  else //其它的只需要判断正则
		  {
		  	   span.innerHTML=info[index][2]; 
		  	   span.className="clsSpanRight";
		  	    flag[index]=true;
		  }
	}
	else
	{
	   span.innerHTML=info[index][1];
	    span.className="clsSpanError";
	     flag[index]=false;
	 }
	
	
}

function checkForm()
{
	  return flag[0]&&flag[1]&&flag[2]&&flag[3]&&flag[4];
	
}

效果图

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/158951.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入思考 Schema 管理的几个基本问题

本文作者&#xff1a;王大龙&#xff0c;数据分析领域资深工程师&#xff0c;观远产品中一切数据的风暴降生之主&#xff0c;元数据世界的精神领袖&#xff0c;数据治理的永恒守望者。前言我发现理解某一个具体「事物」最好的方式是先去理解其背后所遵循的「范式」。范式是一个…

java-Spring集成定时器使用方法

文章目录定时器配置文件测试文件配置参数说明SpringBoot集成schedulepom.xml文件启动类运行结果定时器配置文件 spring核心配置文件 <?xml version"1.0" encoding"UTF-8"?> <beans:beans xmlns:xsi"http://www.w3.org/2001/XMLSchema-in…

python笔记之转义问题 字符串前缀 正则表达式

Python的字符串自己也用\转义 s ABC\\-001 # Python的字符串 # 对应的正则表达式字符串变成&#xff1a; # ABC\-001建议使用Python的r前缀&#xff0c;就不用考虑转义的问题了 s rABC\-001 # Python的字符串 # 对应的正则表达式字符串不变&#xff1a; # ABC\-001关于斜杠…

RGB、LVDS、MIPI和EDP接口液晶屏

RGB、LVDS、MIPI和EDP接口液晶屏概述一、RGB_TTL二、LVDS三、MIPI&#xff08;手机、平板等数码产品应用场合&#xff09;四、eDP接口&#xff08;笔记本、工控机、工业平板等应用场合&#xff0c;用来取代LVDS接口&#xff09;五、应用概述 液晶屏有RGB、LVDS、MIPI DSI和EDP等…

《MYSQL实战45讲》笔记(1-10)

1&#xff1a;一条SQL查询语句是如何执行的&#xff1f; 下面我们来结合一张图来了解MySQL的基本架构 总体来看&#xff0c;MySQL分为服务层和存储引擎两个部分。其中存储引擎负责数据的存储和提取&#xff0c;而服务层负责连接的建立、分析、优化、执行等其他步骤。 常见的…

虚幻引擎中GPU Lightmass全局光照的使用步骤

GPU Lightmass (GPULM) 是一种光烘焙方法&#xff0c;它预先计算来自具有 Stationary 或 Static 移动性的灯光的复杂光交互&#xff0c;并将该数据存储在创建的应用于场景几何体的光照贴图纹理中。GPU Lightmass 显着减少了为复杂场景计算、构建和生成光照数据所需的时间&#…

MQTT QoS 0, 1, 2 介绍

什么是 QoS 很多时候&#xff0c;使用 MQTT 协议的设备都运行在网络受限的环境下&#xff0c;而只依靠底层的 TCP 传输协议&#xff0c;并不能完全保证消息的可靠到达。因此&#xff0c;MQTT 提供了 QoS 机制&#xff0c;其核心是设计了多种消息交互机制来提供不同的服务质量&…

自监督学习之掩码自动编码器(Masked Autoencoders, MAE)——音频识别方面

自监督学习之掩码自动编码器(Masked Autoencoders, MAE)——音频识别方面 1.参考文献 《Masked Autoencoders that Listen》 2.背景 Transformers和self-supervised learning(自监督学习)占据了计算机视觉(Computer Vision,CV)和自然语言处理(natural language processing, …

百度工程师带你玩转正则

作者 | 向阳 导读 在很多技术领域&#xff0c;都有正则的身影。但许多像我一样的人&#xff0c;只闻其名。因此将正则常用知识汇总&#xff0c;便于查阅。正则表达式&#xff08;Regular Expression&#xff09;是用于描述一组字符串特征的模式&#xff0c;用来匹配特定的字符串…

机械--UG NX2007改变零件的默认颜色

UG&#xff08;现在的新版本叫NX&#xff0c;但一般人仍然沿用UG的叫法&#xff0c;下同&#xff09;&#xff0c;新建零件时&#xff0c;零件的默认颜色是橙色的&#xff0c;个人很不喜欢。 当然&#xff0c;实体化以后&#xff0c;可以改变它的颜色&#xff0c;选中实体以后…

傻瓜式裂变—竖屏视频超级原创,呆头鹅批量剪辑软件上万人使用

呆头鹅批量剪辑软件优势&#xff1a; 专业的技术开发团队&#xff0c;成熟的技术架构&#xff0c;完整的售后服务&#xff0c;我们为您解决所有的后顾之忧 .几乎涵盖市面上已知的所有剪辑功能.几乎涵盖市面上已知的所有剪辑功能.完成通知&#xff0c;运行间隔提醒&#xf…

201:vue+openlayers:加载geojson文件形成围栏,可添加、修改、删除feature,导出geojson

第201个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers中实现围栏列表与图中feature双向互动功能。 利用GeoJSON().readFeatures获得到features,通过转换在地图上形成图形,通过新增、修改、删除feature,可以更改整体的features关系。点击导出可以将修改后的…

工厂安全着装识别检测算法 python

工厂安全着装识别检测算法通过Python基于YOLOv5技术&#xff0c;对现场画面中的人员着装穿戴进行实时分析检测自动抓拍存档告警。Python是一种由Guido van Rossum开发的通用编程语言&#xff0c;它很快就变得非常流行&#xff0c;主要是因为它的简单性和代码可读性。它使程序员…

现在才开始学测试晚了么

相信问这样问题的朋友&#xff0c;对软件测岗位存在着很深的误解。实际上&#xff0c;相对于其他的技术岗位来讲&#xff0c;软件测试入门可以说是相对简单的了&#xff0c;因此多晚学习都来得及。其次&#xff0c;这个行业的就业前景广阔&#xff0c;像测试主管、自动化架构师…

k8s之Service

写在前面 本文接k8s之DaemonSet 。 通过Deployment我们可以实现一直有指定个数的POD在运行&#xff0c;而通过DaemonSet可以实现在每个Node上都有一个POD在运行&#xff0c;不管是这两种方式中的哪一种&#xff0c;都是仅仅实现了有若干个POD在运行的效果&#xff0c;但是还无法…

【AdaBoost算法】

AdaBoost算法的原理介绍 AdaBoost算法核心思想 AdaBoost算法 (Adaptive Boosting) 是一种有效而实用的Boosting算法&#xff0c; 它以一种高度自适应的方法顺序地训练弱学习器。AdaBoost根据前一次的 分类效果调整数据的权重&#xff0c;上一个弱学习器中错误分类样本的权重会…

【MySQL】易忘易错函数和经典例题

目录一、函数1. UNION ALL 以及 UNIONUNION ALLUNION2. group_concat二、例题&#xff1a;1. 列转行2. 行转列3. 查找第N高的数据&#xff0c;没有则返回null一、函数 1. UNION ALL 以及 UNION union&#xff1a;对多个结果&#xff0c;去重排序 union all&#xff1a;对多个…

AB测试——原理介绍(中心极限定理、大数定理、假设检验、两类错误)

作为AB测试的学习记录&#xff0c;本文主要整理总结了AB测试背后的数学原理和一些概念解释。 1、控制变量法 基于控制变量法的思想&#xff0c;通过对比两组样本&#xff08;实验组和对照组&#xff09;的表现是否有差异&#xff0c;从而验证“变量”的作用。 借用中学生物课…

Linux常用命令——xauth命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) xauth 显示和编辑被用于连接X服务器的认证信息 补充说明 xauth命令用于显示和编辑被用于连接X服务器的认证信息。 语法 xauth(选项)(参数)选项 -f&#xff1a;不使用默认的认证文件&#xff0c;而使用指定的…

动手深度学习-线性神经网络:softmax回归

目录1.分类问题2. 网络架构3.softmax运算4. 损失函数交叉熵损失函数参考教程&#xff1a;https://courses.d2l.ai/zh-v2/ 1.分类问题 从回归到多类分类&#xff1a;对类别进行一位有效编码——独热编码&#xff08;one-hot encoding&#xff09;。 独热编码是一个向量&#x…