JS 表单验证

本文深入讲解表单验证的实现方式,包括使用JavaScript进行表单校验的代码示例,利用字符串方法和正则表达式进行格式校验的技术细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第七章 表单验证

第一节表单校验

1.表单提交原理

 

使用submit按钮结合表单的onsubmit事件进行校验并提交数据

使用js代码进行校验,并通过表单的submit方法进行提交

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>Document</title>
  <style type="text/css">
  #d1
  {
  height:100px;
  width:100px;
	background:red;
  }
  </style>
  <script>
  function $(id)
  {
	return document.getElementById(id);
  }
  function check()
  {
	if ($("account").value=="")
	{
		alert("账号不能为空");
		return false;
	}
	if ($("pwd").value=="")
	{
		alert("密码不能为空");
		return false;
	}
	if ($("cpwd").value=="")
	{
		alert("确认密码不能为空");
		return false;
	}
	if ($("cpwd").value!=$("pwd").value)
	{
		alert("两次密码不一致");
		return false;
	}
	if ($("phone").value=="")
	{
		alert("手机号不能为空");
		return false;
	}
	return true;
  }
  function d1check()
  {
	  if(check())
	  {
		document.getElementById("regFrm").submit();
	  }
  }
  </script>
 </head>
 <body>
 <form id="regFrm" method="get" οnsubmit="return check()"/>
  账号:<input type="text" name="account" id="account"/><br/>
  密码:<input type="password" name="pwd" id="pwd"/><br/>
  确认密码:<input type="password" name="cpwd" id="cpwd"><br/>
  手机号:<input type="text" name="phone" id="phone"/>
  <br/>
  <input type="submit" value="提交"/>
  </form>
  <div id="d1" οnclick="d1check()"></div>
 </body>
</html>


2.用字符串方法进行表单校验

表单校验的内容:

  • 非空校验:是否填写了内容

  • 格式校验:长度是否在范围内,格式是否符合规则

  • 存在性校验:数据在数据库服务器端是否已经存在

表单中的内容很多都是字符串,故可以使用字符串方法完成一些表单校验的功能,字符串的length属性通常用于校验字符串长度

如下是常用的字符串方法:

方法说明
charAt返回字符串中指定位置的字符
indexOf返回子字符串在目标字符串中首次出现的位置,找不到则返回-1
substr从指定位置开始截取指定长度的字符串例如 str.substr(数组下标,长度)
substring返回指定索引范围内的字符串 例如 str.substring(数组下标,数组下标)左闭右开
toLowerCase返回字符串的小写格式
replace使用新的字符串,替换目标字符串中的旧字符串 "hello".replace("h","g") 结果:gello
split将目标字符串按照特定分隔符,分割成一个字符串数组
trim去除字符串两边的空格

第二节 正则表达式

正则表达式:定义一个规则去验证目标内容是否符合这个规则。用于字符串的校验,查找,替换。

//用RegEXP创建正则表达式对象
var reg=new RegEXP("表达式规则","配置参数");
//通过字面量定义正则表达式对象
var reg=/表达式规则/配置参数;

//配置参数:
g:全局匹配 global
i: 忽略大小写匹配 ignorecase
m: 多行匹配 multiline


正则表达式的常用方法:

方法说明
test使用正则表达式匹配目标内容,若能匹配上,则返回true,否侧返回false
exec使用正则表达式匹配目标内容,如果匹配上,则返回匹配的内容对象。返回对象包含内容的文本和位置。
<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>Document</title>
  <script>
	var str="这是张三丰,那是张无忌";
	var reg=new RegExp("张三");
	alert(reg.test(str));
	var str1="Abcxxxabcxxxbc";
	var reg=/a?bc/ig;
	//alert(reg.exec(str1).index+"   "+reg.exec(str1).index);
	var res=reg.exec(str1);
	alert(res+"  "+res.index+" "+reg.lastIndex);
	res=reg.exec(str1);
	alert(res+"  "+res.index+" "+reg.lastIndex);
	res=reg.exec(str1);
	alert(res+"  "+res.index+" "+reg.lastIndex);
  </script>
 </head>
 <body>
  
 </body>
</html>


 

第三节 字符串方法使用正则表达式

名称描述
search返回与正则表达式查找内容匹配的第一个子字符串的位置
replace返回根据正则表达式进行文字替换后的字符串
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值