javaScript 表单

**

表单 正则表达式

**
目标:

知道表单验证

会使用正则表达式

能看懂简单的正则表达式

能写简单的正则表达式

一、表单验证
1.什么是
表单:搜集用户信息,并且将信息发送给指定的服务器程序处理。信息必须格式才能向后台提交。

如果没有javaScript 此时数据的校验只能在 后台服务器端完成,

后果:浪费资源,浪费时间,降低服务器的效率。在js校验数据格式。如果符合格式,可以提交,否则,不能提交。

如果有javaScript : 直接在客户端进行 数据格式的校验,不需要经过后台,也就是说,只要数据能发送倒到后台,就说明这个数据一定是后台需要的数据。

表单验证的作用:验证数据的格式,将后台需要的数据格式 发送到后台。

**例如:**手机号,身份证号,邮箱等。
2、验证 字符串的判断操作

charAt() 返回在指定位置的字符。
concat() 连接两个或更多字符串,并返回新的字符串。
indexOf()* 返回某个指定的子字符串值在字符串中首次出现的位置。
includes()* 查找字符串中是否包含指定的子字符串。是返回true,否则false
lastIndexOf() 从后向前搜索字符串,并从起始位置(0)开始计算返回字符串最后出现的位置。
replace() 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
slice() 提取字符串的片断,并在新的字符串中返回被提取的部分。
split() 把字符串分割为字符串数组。
startsWith() 查看字符串是否以指定的子字符串开头。
endsWith() 查看字符串是否以指定的子字符串结尾。
*substr(起始索引,提取的长度) 从起始索引号提取字符串中指定数目的字符。
*substring() 提取字符串中两个指定的索引号之间的字符。
toLowerCase() 把字符串转换为小写。
toUpperCase() 把字符串转换为大写。
trim() 去除字符串两边的空白。
toString() 返回一个字符串。

案例
charAt

var arr='sdfasdfasdf'
			alert(arr.charAt(4));//返回指定位置的字符s

concat
拼接字符串

var arr="sdfasdfasdf"
	
			var arr1="你好哈哈哈"
			 var arr2=arr.concat(arr1);
			alert(arr2);//sdfasdfasdf你好哈哈哈

indexOf
返回子字符第一次出现的位置

var arr="sdfasdfasdf"
	
			var arr1="你好哈哈哈"
			
			alert(arr1.indexOf("你"));//0


includes()
注意不提示

var arr="sdfasdfasdf"
	
			var arr1="你好哈哈哈"
			//查找字符串是否存在 存在true 不存在false
			var a=arr1.includes("2");
				alert(a);//false

lastIndeOf

注意是从后门开始找

var arr="sdfasdfasdf"
	
			var arr1="你好哈哈哈"
			
			//从后向前搜索 并从起始位0开始计算字符串最后出现的位置
			var a=arr1.lastIndexOf("哈");
			alert(a);//返回的是4位置

replace
替换

var arr="sdfasdfasdf"
	
			var arr1="你好哈哈哈"
			
			var a= arr1.replace("你","sdf");
			alert(a); //替换		

slice(start,end)
片段截取

/*			 start必须。 要抽取的片断的起始下标,
			第一个字符位置为 0。如果为负数,则从尾部开始截取 
			end可选。 紧接着要截取的片段结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。slice(-2) 表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)。
			*/
var arr="sdfasdfasdf"
	
			var arr1="你好哈哈哈"
			
			var a=arr1.slice(1,2);
			alert(a);//好

split()
待更新
split()把字符串分割为字符串数组。
string.split(separator,limit)

var arr="sdfasdfasdf"
	
			var arr1="你好哈哈哈"
			
		//split()把字符串分割为字符串数组。
			var a=arr1.split("");
			alert(a)

startsWith

var arr1="你好哈哈哈"
			
			//startsWith()查看字符串是否以指定的子字符串开头是的就为true 否则为false
			var  a=arr1.startsWith("你");
			alert(a);//true

endWith()

var arr1="你好哈哈哈"
			
			//endsWith()查看字符串是否以指定的子字符串结尾。
			
			var a=arr1.endsWith("哈")
			alert(a);//true  最后一位

substr( start ,length)

var arr1="你好哈ni哈哈"
		
		//*substr(起始索引,提取的长度)从起始索引号提取字符串中指定数目的字符。
					 
		var a= arr1.substr("0",2);
		alert(a);//你好

substring

var arr1="你好哈ni哈哈"
			
			var a=arr1.substring("2","5");
			alert(a);//哈ni   提取字符串中两个指定的索引号之间的字符串;

toUpperCase
大写
tpLowerCase
小写

var arr="sdfasdfasdf"
	
			var arr1="你好哈ni哈哈"
			
			var a =arr.toUpperCase(2);//转大写
			var b=a.toLowerCase();//转小写
			alert(a);//SDFASDFASDF
			alert( b);//sdfasdfasdf

trim
去除字符俩边的空格

var arr1="                         你好哈ni哈哈   "
			
			alert(arr1.trim());/删除字符串两边空格 只能是俩边

toString()
返回字符串的内容

var arr="sdfasdfasdf"
	
			var a=arr.toString();
		
			alert(a);

3、表单验证的使用
模拟注册。用户名 加油箱

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			.aaa > div{
    
    
				display: none;
			}
		</style>
	</head>
	<body>
			<form action="http://www.baidu.com"  onsubmit="return tj()">
		<fieldset id="" style="width: 500px; margin: auto; ">
				<legend>表单验证</legend>
				<table border="" cellspacing="" cellpadding="" onsubmit="return tj()">
					<tr>
						<td>
							用户名:
						</td>
						<td>
						<input type="" name="" id="" value="" class="inp" onblur="bbb(this)"  placeholder="请输入用户名"/>
							<div class="aaa">
					
								<div id="">必须以字母kt,长度为6---16</div>
								<div id="">格式错误</div>
								<div id="">格式正确</div>
							</div>
						</td>
						
					</tr>
					<tr>
						<td>
							邮箱:
						</td>
						<td>
						<input type="" name="" id="" value="" onblur="ccc(this)" class="inp"  placeholder="请输入邮箱"/>
							<div class="aaa">
								<div id="">必须以@还有.的正确格式</div>
								<div id="">格式错误</div>
								<div id="">格式正确</div>
							</div>
						</td>
						
					</tr>
				</table>
				
					<input type="submit" name="" id=""  value="提交" />
			</fieldset>
		</form>

		<script type="text/javascript">
			var inpuArr=document.getElementsByClassName("inp")
			for(var i=0;i<inpuArr.length;i++){
    
    
				inpuArr[i].onfocus=function(){
    
    
					//判断焦点 给样式
					var str=this.nextElementSibling.children[0];
					str.style.display="block";
					
				}
			}
			//失去 就开始进行判断 正则表达式
			function bbb(a){
    
    
				var zz=/^[a-zA-Z]\w{5,15}$/;				
				if(a.value !=""){
    
    
					if(zz.test(a.value)){
    
    
						a.nextElementSibling.children[2].style.display="block";	
						a.nextElementSibling.children[0].style.display="none";	
						a.nextElementSibling.children[1].style.display="none";	
					}else{
    
    
						a.nextElementSibling.children[1].style.display="block";	
						a.nextElementSibling.children[1].style.backgroundColor="red";
					}
				}else{
    
    
					a.nextElementSibling.children[1].style.display="none";
					a.nextElementSibling.children[2].style.display="none";		
				}a.nextElementSibling.children[0].style.display="none";	
	
			}
			function ccc(a){
    
    
				var zz=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;			
				if(a.value !=""){
    
    
					if(zz.test(a.value)){
    
    
						a.nextElementSibling.children[2].style.display="block";	
						a.nextElementSibling.children[0].style.display="none";	
						a.nextElementSibling.children[1].style.display="none";	
					}else{
    
    
						a.nextElementSibling.children[1].style.display="block";	
						a.nextElementSibling.children[1].style.backgroundColor="red";
					}
				}else{
    
    
					a.nextElementSibling.children[1].style.display="none";
					a.nextElementSibling.children[2].style.display="none";		
				}a.nextElementSibling.children[0].style.display="none";	
				
			}//判断格式是否正确正确可以不正确不可以 判断另一个的样式是不是红色 如果是红色就不能提交
			function tj(){
    
    
				for(var i=0;i<inpuArr.length;i++){
    
    
					var ys=inpuArr[i].nextElementSibling.children[1];
					if(inpuArr[i].value==""||ys.backgroundColor=="red"){
    
    
						
						return false;
					}else{
    
    
						
						return true;
					}
			}
			}
		</script>
	</body>
</html>

二、正则表达式

1、什么是
正则表达式,又称规则表达式**。**(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。

许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。
2、为什么要用
有一些比较复杂的校验使用字符串提供的方法不能很好的校验,那么此时就使用 正则进行一些复杂校验。例如:身份证号,手机号,只能输入汉字校验。。。。
3、怎么用

  • 创建正则表达式

    附加参数:g(global):全局匹配 i(ignoreCase):不区分大小写

    var 变量名=new RegExp(“表达式”,”附加参数”);

    var reg=/表达式/附加参数

  • 使用正则表达式

    include 全等于

    test() 检索字符串中是否存在指定的值。存在返回 true 不存在返回 false。
    exec() 检索字符串中的正则表达式的匹配。如果存在返回该字符串,不存在返回null 自己了解

    1.会使用正则表达式

    2.能看懂简单的正则表达式

    3.会写简单的正则表达式
    4、常用字符

符号 含义
. 匹配任意字符 一位
\ 转义字符:在正则中有很多符号都有特殊含义,当我们不想使用特殊含义,只需要使用符号本身时,可以使用\转义符。
[] 表示范围
{} 限定位数 {n}代表匹配n位;{n,}代表至少匹配n位;{n,m}匹配n-m位
* 匹配前边子表达式任意次
+ 匹配前边子表达式1次或者多次 (大于等于1次)
? 匹配前边子表达式0次或者1次
^ 匹配行首 以 XXX 开头
$ 匹配末尾 以XXX结尾
| 表示或者
() 表示一个整体
[^…] 不在括号字符范围内的任意字符
\w 任何单字字符, 等价于[a-zA-Z0-9]
\W 任何非单字字符,等价于[ ^a-zA-Z0-9]
\s 任何空白符,等价于[\t \n \r \f \v]
\S 任何非空白符,等价于[ ^\ t \ n \ r \ f \ v]
\d 任何数字,等价于[0-9]
\D 除了数字之外的任何字符,等价于[ ^0-9]

总结

熟练使用表单验证,可以为表单验证添加特效。

掌握正则表达式中的符号的特殊含义

会使用正则表达式

能看懂简单的正则表达式

会写简单的正则表达式

おすすめ

転載: blog.csdn.net/qq_45438019/article/details/119077995