Web前端 学习知识点总结(十二)jQuery进阶 表单验证和简单正则表达式

news/2024/7/10 23:55:44 标签: jquery, js, html, 正则表达式

系列文章目录

Web前端 学习知识点总结(一)HTML基本标签.
Web前端 学习知识点总结(二)之Form和Css选择器.
Web前端 学习知识点总结(三)Css字体、文本样式以及盒子模型.
Web前端 学习知识点总结(四)之display 和 float.
Web前端 学习知识点总结(五)qq导航条案例,使用min-width解决留白.
Web前端 学习知识点总结(六)定位position.
Web前端 学习知识点总结(七)Css3动画animation.
Web前端 学习知识点总结(八)JavaScript的常用基础.
Web前端 学习知识点总结(九)JavaScript的BOM和DOM基础.
Web前端 学习知识点总结(十)jQuery基础 获取文本和选择器.
Web前端 学习知识点总结(十一)jQuery进阶 动画和节点操作.
Web前端 学习知识点总结(十二)jQuery进阶 表单验证和简单正则表达式.
Web前端 学习知识点总结(十三)学生管理系统案例.


文章目录


前言

表单可以作为一个独立的模块来进行学习,在进行提交的时候经常会使用到表单的内容。


一、表单验证

减轻服务器的压力,数据在发送给服务器之前,需要先在客户端进行一些基本的验证。为了保证数据的完整性,并减服务器压力,还可以提升用户的体验。

1.1 表单验证的时机

表单在提交的时候进行验证,为了证明,使用return false 来提前拦截。
return true 表示可以通过验证,return false 表示不能通过。

  • 方式一 提交按钮验证
    $("#subbtn").click(function(){
    return false
    })

  • 方式二 双return验证
    在input type=submit中的onclick或者onsubmit中要加"return +fn()"
    fn是需要进行验证的函数

  • 方式三 form验证
    $("#regForm").submit(function(){
    return false
    })

个人认为,方式一和方式三比较相似,不同处在于设置在控件的不同标签位置上。

html"><!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<form action="index.html" id="regForm">
			
			<input type="submit" value="提交" id="subbtn" />
		</form>
	</body>
</html>
<script src="html" title=js>js/html" title=jquery>jquery-1.12.4.html" title=js>js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
//	前两种方法是对于input ,第三种是在form上
//	方法一 sbumit 按钮的click
//return true 表示可以通过验证,return false 表示不能通过
//	$("#subbtn").click(function(){
//		return false
//	})
//方法二  onsubmit或者onclick("return +函数")
//双return
//在input中加 οnclick="return re()"
//function re(){
//	return false
//}

//return ture 验证通过 .表单可以提交给服务器,return false,就不提交

//方式三  
$("#regForm").submit(function(){
	return false
})
</script>

1.2 表单选择器

可以选择input,select,textarea 可以选择表单内的全部元素
使用$(":input")

相当于 input[type=text],以下元素同理

  • :text

  • :password

  • :radio

  • :checkbox

  • :file

  • :hidden

  • :image

  • :submit

  • :buttom

属性过滤选择器

可以选择按钮中是否允许选择的属性
:enable
:disable

获取选中的具体的一项
:checked
:selected

1.3 常见表单验证的规则

姓名不为空
年龄必须是数字,且有范围,整数
性别需选择
城市
爱好
。。。

html"><!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			.tip{
				display: none;
			}
		</style>
	</head>
	<body>
		<form action="index.html"  id="regForm">
			<p>
				姓名<input type="text" name="username" onfocus="" onblur="checkname()" placeholder="请输入4-16位字符"/>
				<span class="tip" id="nameno">姓名</span>
			</p>
			<p>
				年龄<input type="text" name="age"/>
			</p>
			
			<p>
				性别:<input type="radio" name="sex" value="man"/><input type="radio" name="sex" value="woman"/></p>
			<p>
				爱好:<input type="checkbox" name="hob" value="sw"/>游泳
					<input type="checkbox" name="hob" value="fit"/>健身
			</p>
			<p>
				省份:
				<select name="province">
					<option value="-1">请选择</option>
					<option value="1001">陕西</option>
					<option value="1002">四川</option>
					<option value="1003">宁夏</option>
					<option value="1004">北京</option>
				</select>
			</p>
			<p>
				邮箱:<input type="text" name="email" id="email" />
			</p>
			<p>
				<input type="submit" value="提交"/>
			</p>
		</form>
	</body>
</html>
<script src="html" title=js>js/html" title=jquery>jquery-1.12.4.html" title=js>js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
//	对姓名的验证
	function checkname(){
		var name=$(":text[name='username']").val()
//		trim()去空格 只能去掉前后的空格 中间的空格是正常的现象
		if($(":text[name='username']").val().trim()==""){
//			获取焦点
			$(":text[name='username']").focus();
			$("#nameno").html("请填写").show()
			return false;
		}else if(name.length<4||name.length>16){
//			选中
			$(":text[name='username']").select();
			$("#nameno").html("请填写4~16位字符").show()
			
			return false;
		}else{
//			对一些特殊要求	.split("")不加字符 全部分割
			$("#nameno").hide()
			return true;
		}
	}
	
	
	
	
	
//表单验证	
	$("#regForm").submit(function(){

		if(!checkname())return false
//		console.log($(":text[name='username']").val())
		
		var age=$(":text[name='age']").val()
		if (age=="") {
			alert("请填写年龄");
			return false;
		} else if(isNaN(age)){
			alert("必须是数字");
			return false;
		}else if(parseInt(age)<16){
			alert("年龄必须在16岁以上");
			return false;
		}
//		如果出现indexOf是返回的位置
		else if(age.indexOf(".")>-1){
			alert("年龄必须是整数");
			return false;
		}
		
		if($(":radio[name='sex']:checked").length==0){
			alert("请选择性别");
			return false;
		}
//		爱好验证
		if($(":checkbox[name='hob']:checked").length==0){
			alert("请选择性别");
			return false;
		}
		
//		省份验证
		if ($(":input[name='province']").val()=="-1") {
			alert("庆幸选择");
			return false;
			
		} 
//		邮箱验证
		var email =$("#email").val();
		if (email="") {
			alert("请选择");
			return false;
//		如果没有
		} else if(email.indexOf("@")<=0){
			alert("请选择@");
			return false;
		}else if(email.indexOf(".")<=email.indexOf("@")){
			alert("格式不对");
			return false;
		}

		return true;
	})
</script>

注:表单验证提示效果
focus() 当提交的时候,选择有该命令的
select() 当提交的时候,选择有该命令的
区别在于 前者是光标会在最后出现,后者是整体选中。
onblur 事件会在对象失去焦点时发生。
如:没有onblur时,可以选择其他控件。反之,就必须要验证通过才能进行下一项。


二、正则表达式

2.1 常见的正则表达式

\d

数字字符匹配。等效于 [0-9]。

\D

非数字字符匹配。等效于 [^0-9]。

\f

换页符匹配。等效于 \x0c 和 \cL。

\n

换行符匹配。等效于 \x0a 和 \cJ。

\r

匹配一个回车符。等效于 \x0d 和 \cM。

\s

匹配任何空白字符,包括空格、制表符、换页符等。与 [ \f\n\r\t\v] 等效。

\S

匹配任何非空白字符。与 [^ \f\n\r\t\v] 等效。

\t

制表符匹配。与 \x09 和 \cI 等效。

\v

垂直制表符匹配。与 \x0b 和 \cK 等效。

\w

匹配任何字类字符,包括下划线。与"[A-Za-z0-9_]"等效。

\W

与任何非单词字符匹配。与"[^A-Za-z0-9_]"等效。

2.2 常用的正则表达式

以后用到会进行补充

  • 验证名字

     /^1[a-zA-Z]([a-zA-Z]){3,15}$/
    
  • 手机号码

     /^1[3578]\d{9}$/
     
     /^(13|15|17|18)\d{9}$/
    

一般使用r.test进行表单内的测试
console.log(r.test(“13222222222”))

  • 电子邮件

      /^\w+@\w+(\.[a-zA-Z]{2,3}){1,2}$/
    

    w+ 有一个或者多个字符

console.log(r.test(“22251@qq.co”))



http://www.niftyadmin.cn/n/1803466.html

相关文章

Binwalk的安装和使用

Binwalk的安装和使用 一、安装Git 参考链接&#xff1a;https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137396287703354d8c6c01c904c7d9ff056ae23da865a000 注意&#xff1a;安装完成后不是在电脑系统的命令行对其进行设置&#xff…

模块--json

import json转载于:https://www.cnblogs.com/wangxiaoshou/p/10306356.html

Web前端 学习知识点总结(十三)学生管理系统案例

系列文章目录 Web前端 学习知识点总结&#xff08;一&#xff09;HTML基本标签. Web前端 学习知识点总结&#xff08;二&#xff09;之Form和Css选择器. Web前端 学习知识点总结&#xff08;三&#xff09;Css字体、文本样式以及盒子模型. Web前端 学习知识点总结&#xff08;…

CodeForces 794 G.Replace All

CodeForces 794 G.Replace All 解题思路 首先如果字符串 \(A, B\) 没有匹配&#xff0c;那么二元组 \((S, T)\) 合法的一个必要条件是存在正整数对 \((x,y)\)&#xff0c;使得 \(xSyT\)&#xff0c;其中 \(xS\) 是将字符串 \(S\) 复制 \(x\) 遍后得到的字符串&#xff0c;\(yT\…

vue axios 批量删除 数组参数

方法一&#xff1a;前端循环请求服务器端delete&#xff08;id&#xff09;方法 请问如何获得element-ui表格中的勾选项index&#xff0c;以实现批量删除功能 https://segmentfault.com/q/1010000012759131 方法二&#xff1a;传递 string类型字符串。例如: 1,2,3,4 ids [1,2,3…

JavaSE(一) java的安装和环境配置

系列文章目录 文章目录系列文章目录前言一、Java下载二、Java安装2.1 安装jdk2.2 安装jre三、Java环境的配置&#xff08;Win10&#xff09;四、Java测试五、Java的"Hello World"前言 在学习JavaSE之前&#xff0c;我们需要先进行java的下载&#xff0c;安装以及最重…

Java各进制之间的转化

1.R进制转十进制 R进制转十进制方法返回值将s用R进制 转为 十进制Integer.parseInt(String s ,int radix)十进制整数 2.十进制转其他进制 十进制转其他进制方法返回值十进制转二进制Integer.toBinaryString(int i)二进制字符串十进制转八进制Integer.toOctalString(int i)八进…

Zabbix + Grafana

Grafana 简介 Grafana自身并不存储数据&#xff0c;数据从其它地方获取。需要配置数据源 Grafana支持从Zabbix中获取数据 Grafana优化了图形的展现&#xff0c;可以用来做监控大屏Grafana支持用户的认证下载地址: https://grafana.com/docs/installation/rpm/安装并启动 wget h…