七、ES对象(二) -- 正则表达式

一、正则表达式的作用


	正则表达式的作用:
			1) 检查字符串是否符合规则
			2) 将字符串中符合规则的内容提取出来。
			

二、创建正则表达式

	
	+++ 创建正则表达式
			
					使用RegExp创建正则表达式	
							var reg=new RegExp("正则表达式","匹配模式");
					
					
					使用字面量创建正则表达式	
							var reg=/正则表达式/匹配模式

	+++ 正则表达式的匹配模式
	
					i  忽略大小写
					g  执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。		
					m  执行多行匹配
							
							注意:可以为一个表达式设置多个匹配模式。顺序无所谓。
												var reg=/abc/ig
												var reg=/abc/gi						


2.1 创建正则表达式
1)使用RegExp创建正则表达式
     
        //创建正则表达式
        var reg=new RegExp("a");
        console.log(reg.test("你好!小a"));  //true


        //创建正则表达式,带有匹配模式
        var reg2=new RegExp("A","i");
        console.log(reg2.test("你好!小a"));  //true
        
2) 使用字面量创建正则表达式

        //创建正则表达式
        var reg=/a/;
        console.log(reg.test("你好!小a"));  //true


        //创建正则表达式,带有匹配模式
        var reg2=/A/i;
        console.log(reg2.test("你好!小a"));  //true

2.2 正则表达式的匹配模式
             
		i  忽略大小写
					var reg=/reg/i;
        			var reg=new RegExp("a","i");
        			
		g  执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
					var reg=/reg/g;	
        			var reg=new RegExp("a","g");
			
		m  执行多行匹配(很少用这个!!!)
		
				
		注意:可以为一个表达式设置多个匹配模式。顺序无所谓。
							var reg=/abc/ig
							var reg=/abc/gi						

1) i 忽略大小写

            var str="eweAdfdfB 32323ewe wew ";

            //检测字符串是否含有ad子串
            var reg=/ad/;
            console.log(reg.test(str))  //false

            //检测字符串是否含有ad子串,忽略大小写
            var reg=/ad/i;
            console.log(reg.test(str))  //true
            

在这里插入图片描述

2) g 执行全局匹配

          var str="eweadfdad 32323ewe wew ";

            //替换字符串中的ad子串。 替换一个停止
            var reg=/ad/;
            var newStr=str.replace(reg,'hlp');
            console.log(newStr)  

            //替换字符串中的ad子串。 全局替换。
            var reg=/ad/g;
            var newStr=str.replace(reg,'hlp');
            console.log(newStr) 
            

在这里插入图片描述

3)注意:可以为一个表达式设置多个匹配模式。顺序无所谓
           var str="eweadfdaD 32323ewe wew ";

            //替换字符串中的ad子串。 完全替换。  忽略大小写
            var reg=/ad/ig;
            var newStr=str.replace(reg,'hlp');
            console.log(newStr)  
            

在这里插入图片描述

三、正则表达式常用方法

				
		test()  
			 检查字符串中是否有符合规则(正则表达式规则)的子串。符合返回true,否则falseexec()
			 获取字符串中有符合正则表达式规则的子串,默认返回一个数组。
			 

3.1 test() 检查字符串中是否有符合规则的子串
>>>>>> 检测字符串是否有a 子串

            var s="a";
            console.log(s.test(/a/))  //true

            s="absdsdsd"
            console.log(s.test(/a/))  //true

            s="eweewewew"
            console.log(s.test(/a/))  //false
            
>>>>>> 检测字符串是否有ab子串,忽略大小写

           var s="212aBwewewe";

           //检测字符串中是否有 ab 子串 。由于不匹配,所以false
           console.log(s.test(/ab/))  //false

           //检测字符串中是否有 ab 子串 。忽略大小写,所以true
           console.log(s.test(/ab/i))  //true
         
3.2 exec() 获取字符串中符合规则的子串
>>>>>> 查找字符串中相符的字符串
			var str="da  jia hao hao xue xi a";
			var reg=/\b[A-Z]{3}\b/ig;    //忽略大小写

			var line=reg.exec(str)
			alert(line)// jia

在这里插入图片描述

>>>>>> 查找字符串中所有相符的字符串
<body>
	
</body>

<script type="text/javascript">

			var str="da  jia hao hao xue xi a";
			var reg=/\b[A-Z]{3}\b/ig;    //忽略大小写

			var line="";
			while((line=reg.exec(str))!=null){
				document.write(line)
				document.write("<br/>")

			}


</script>

在这里插入图片描述

四、正则表达式语法

4.1 或
	
	|  表示或的意思
	
>>>>>> 检测字符串是否含有a或b子串

         var str="abcd";

         //检测字符串中是否含有a子串
         var reg=/a/;
         console.log(reg.test(str)); //true

         //检测字符串中是否含有a子串或b子串,
         var reg=/a|b/;
         console.log(reg.test(str)); //true
         
>>>>>> 检测字符串是否含有ab或qww子串

            var str="ab212cd";

            //检测字符串中是否含有ab子串
            var reg=/ab/;
            console.log(reg.test(str)); //true

            //检测字符串中是否含有ab子串或qww子串,
            var reg=/ab|qww/;
            console.log(reg.test(str)); //true

4.2 方括号
		
		[ ]   方括号用于查询某个范围内的字符	
			  方括号里的内容也是或的意思。
			
		[^ ]  除了方括号里面的字符
		

		[abc]  表示a、b、c中的任意字符。等价于 a|b|c
		[^abc] 除了a、b、c中的任意字符
		
		[a-z]  表示任意小写字母
		[A-Z]  表示任意大写字母
		[A-z]  表示任意字母
		
		[0-9]  表示0-9任意数字
		[4-9]  表示4-9任意数字
		
		[0-9a-zA-Z]  表示可以是数字或英文字母中的任意字符
		
		(ab|bc|cd)  表示ab、bc、cd中的任意字符串
	
>>>>>> 检查一个字符串是否含有a或b或c
        //创建正则表达式
        var reg=/a|b|c/;


        console.log(reg.test("a21323"));    //true
        console.log(reg.test("21b323"));    //true
        console.log(reg.test("21c323"));    //true

        console.log(reg.test("2332323te")); //false


        var reg='[abc]';

        //检查字符串中是否含有a或b或c
        console.log(reg.test("rewe")); //false

        //检查字符串中是否含有a或b或c
        console.log(reg.test("a434d"));//true
            
>>>>>> 检查一个字符串是否含有abc或adc或aec
            var str="我是abc你aw";

            var reg=/abc|adc|aec/;
            console.log(reg.test(str))
            
       	 	var str="我是abc你aw";

            var reg=/a[bcd]c/;
            console.log(reg.test(str))
            
>>>>>> [ ]

检查字符串是否含有数字

          //检查字符串是否含有数字
          var reg=/[0-9]/
          console.log(reg.test("dewwewe3")); //true
          console.log(reg.test("dewwewe"));  //false
          

检查字符串是否含有4-9数字

         //检查字符串是否含有4-9数字
          var reg=/[4-9]/
          console.log(reg.test("dewwewe3")); //false
          console.log(reg.test("dewwewe7"));  //true

检查字符串是否含小写字母


          //检查字符串是否含小写字母
          var reg=/[a-z]/
          console.log(reg.test("1213232323")); //false
          console.log(reg.test("121212a"));  //true

检查字符串是否含大写字母



          //检查字符串是否含大写字母
          var reg=/[A-Z]/
          console.log(reg.test("1213232323")); //false
          console.log(reg.test("121212a"));  //false
          console.log(reg.test("121212A"));  //true

检查字符串是否含字母


   		 //检查字符串是否含字母
          var reg=/[A-z]/
          console.log(reg.test("1213232323")); //false
          console.log(reg.test("121212a"));  //true
          console.log(reg.test("121212A"));  //true
          
>>>>>> [ ] 混合

检测字符串中是否有数字或大写的英文字母


        //检测字符串中是否有数字或大写的英文字母
        var reg=/[0-9A-Z]/;
        
        console.log(reg.test("ewe"))     //false
        console.log(reg.test("123232dwew"))     //true
        

检测字符串中是否有数字或英文字母

        //检测字符串中是否有数字或英文字母
        var reg=/[0-9A-Za-z]/;
        
        console.log(reg.test("ewe"))     //true
        console.log(reg.test("123232dwew"))     //true

>>>>>> [ ^ ] 除了

[ ^ ] 检查字符串是否含有除了中括号内的字符


            var reg=/[^ab]/

            console.log(reg.test("a"));  //false
            console.log(reg.test("b"));  //false
            console.log(reg.test("ab")); //false

            console.log(reg.test("ab12"));  //true
            
4.3 量词

	量词:
				1) 通过量词可以设置一个元素出现的次数。
				2) 量词只对它前面的一个内容起作用。
			
							

	量词语法:	
				{m}   出现m次
				{m,n} 出现m到n次
				{m,}  出现m次以上
				 +    至少出现1次,相当于{1,}
				 *    出现0或多次,相当于{0,}
				 ?    出现0次或1次。相当于{0,1}
										 
							例子:
									出现m次:
											ab{3}c
											(ab){3}c
											
									出现m到n次
										    ab{1,3}c
									
									出现m次以上
											ab{3,}
									
									

1) 量词要点
>>>>>>> 通过量词可以设置一个元素出现的次数

           var reg=/aaa/
           //检测字符串是否含有 aaa 的子串
           console.log(reg.test("aabcccc"));//false
           //检测字符串是否含有 aaa 的子串
           console.log(reg.test("aaabcccc"));//true


		   //等价于/aaa/
           var reg=/a{3}/  
           
           //检测字符串是否含有 aaa 的子串
           console.log(reg.test("aabcccc"));//false
           //检测字符串是否含有 aaa 的子串
           console.log(reg.test("aaabcccc"));//true
            
>>>>>>> 量词只对它前面的一个内容起作用

            //相当于		/abbb/
            var reg=/ab{3}/


            //相当于		/ababab/
            var reg2=/(ab){3}/

2) 量词语法
>>>>>> {m} 出现m次

        //相当于 /acbbb/
        var reg=/acb{3}/

        //相当于 /acbacbacb/
        var reg=/(acb){3}/
        
>>>>>> {m,} 出现m次以上

        //相当于a出现3次以上
        var reg=/a{3,}/


        console.log(reg.test("abcaa")); //false
        console.log(reg.test("abcaaa")); //true
        
>>>>>> {m,n} 出现m到n次
        //相当于a出现1次到3次
        var reg=/a{1,3}/


        console.log(reg.test("bcd")); //false
        console.log(reg.test("abcd")); //true
        console.log(reg.test("aaaabcd")); //true
>>>>>> + 至少出现1次

        //相当于a至少出现一次
        var reg=/a+/


        console.log(reg.test("bcd")); //false
        console.log(reg.test("abcd")); //true
        console.log(reg.test("aaaaabcd")); //true
>>>>>> * 出现0次或多次

        //相当于a出现0次或多次
        var reg=/a*/


        console.log(reg.test("bcd")); //true
        console.log(reg.test("abcd")); //true
        console.log(reg.test("aaaaabcd")); //true
        
>>>>>> ? 出现0次或1次

        //相当于a出现0次或一次
        var reg=/a?/


        console.log(reg.test("bcd")); //true
        console.log(reg.test("abcd")); //true
        console.log(reg.test("aaaaabcd")); //true
        

		^ 表示开头
				/^abc/  表示以abc开头
		
		& 表示结尾
				/abc$/  表示以abc结尾
						
		/^a$/
		
4.4 元字符

		元字符:
			    .   代表任意字符
	
				\w	任意数字、字母及下划线。  [0-9A-z_]
				\W	除了单词字符。		  [^0-9A-z_]
				
				\d	任意数字。 [0-9]
				\D	除了数字   [^0-9]
				
				\s	空格。 
				\S	除了空格。
	
				\b	单词边界。
				\B	除了单词边界
							 所谓的单词边界指的就是单词前后有空格(字符串开头或结尾除外)
							 我们可以使用空格来代替单词边界查找单词,但是如果单词在开头或结尾的就不行。此时必须使用单词边界。
							 
				

		
		正则表达式转义:
				1) 【使用字面量创建正则表达式】中的转义
							
							在正则表达式中使用\表示转移字符

				2) 【使用RegExp对象创建正则表达式】中的转义
							
							在构造函数中使用\\表示转移字符。
							
							原因:使用构造函数创建正则对象时,参数是字符串。
							     由于正则表达式中的转义字符是 \ , 而字符串中的转义字符也是 \ 。
							     且字符串转义后的形式就是正则表达式。
					    		 在正则表达式中如果要使用\,则在字符串中需要使用\\来双重转义。
					    		 		
					    		 		字符串:\\.   == > 正则: \.
					    		 		字符串:\\\\  == > 正则: \\

						
1)元字符要点
>>>>>> . 代表任意字符

        //匹配任意字符
        var reg=/./

        console.log(reg.test("deggf"))  //true
        console.log(reg.test("#$%^%^%@#@"));//true

        //匹配 . 
        var reg=/\./
        console.log(reg.test("#$%^%^%@#@"));//false
        console.log(reg.test("#$%^%^%@#@."));//true
>>>>>> \w 与\W (任意数字、字母及下划线)pi

匹配任意字母、数字、下划线

        //匹配字母、数字、下划线
        var reg=/\w/

        console.log(reg.test("deggf"))  //true
        console.log(reg.test("#$%^%^%@#@"));//false


        //匹配字母、数字、下划线
        var reg2=new RegExp("\\w");

        console.log(reg2.test("deggf"))  //true
        console.log(reg2.test("#$%^%^%@#@"));//false
        

匹配除了字母、数字、下划线


        //匹配除了字母、数字、下划线的符号
        var reg=/\W/

        console.log(reg.test("deggf"))  //false
        console.log(reg.test("#$%^%^%@#@"));//true
        
>>>>>> \d 与\D (任意数字)

匹配任意数字


        //匹配任意数字
        var reg=/\d/

        console.log(reg.test("deggf"))  //false
        console.log(reg.test("4derer"));//true

匹配除了数字


        //匹配除了数字的字符
        var reg=/\D/

        console.log(reg.test("deggf"))  //true
        console.log(reg.test("232323"));//false


        //匹配出现三次非字符的子串
        var reg=/\D{3}/

        console.log(reg.test("deggf"))  //true
        console.log(reg.test("4de23er"));//false
        
>>>>>> \s 与\S (空格)

匹配空格


        //匹配空格
        var reg=/\s/
        console.log(reg.test("32   323")) //true

        //匹配两个空格
        var reg=/\s{2}/
        console.log(reg.test("32 323"))  //只有一个空格 false
        console.log(reg.test("32  323")) //有两个个空格 true

        //匹配三个空格
        var reg=/\s{3}/
        console.log(reg.test("32 323"))   //只有一个空格 false
        console.log(reg.test("32  323"))  //只有两个空格 false
        console.log(reg.test("32   323"))   //有三个空格 true
        

匹配非空格


        //匹配连续3个非空格的字符
        var reg=/\S{3}/
        console.log(reg.test("   "))    //false
        console.log(reg.test("32        323")) //true
        
>>>>>> \b 与\B (单词边界)

查找单词

		
        var reg=/\bchild\b/
        console.log(reg.test("hello child")) //true
        console.log(reg.test("hello child  你好")) //true

        console.log(reg.test("hello childc")) //false
        

我们可以使用空格来代替单词边界查找单词,但是如果单词在开头或结尾的就不行。

        var reg=/\sworld\s/;


        console.log(reg.test("wqqworld"))    //false
        console.log(reg.test("wqqworld ss")) //false
        console.log(reg.test("wqq world"))   //false
        console.log(reg.test("wqq world  wqq"))   //true
        
2)正则表达式转义
>>>>>> 正则表达式使用 \ 来转义特殊字符

匹配 字符 .


        //匹配任意字符
        var reg=/./;
        console.log(reg.test("232323")) ; //true
        console.log(reg.test("2323.23")) ; //true


        //匹配字符 .
        var reg=/\./;
        console.log(reg.test("232323")) ; //false
        console.log(reg.test("2323.23")) ; //true
        

匹配 字符 \



        //匹配字符 \ 
        var reg=/\\/;
        console.log(reg.test("23232\\3")) ; //true
        console.log(reg.test("2323.23")) ; //false

>>>>>> 使用RegExp创建正则表达式,转义 \

字符串转义后的形式就是正则表达式。
如果正则表达式中本身有 \,则在字符串中需要双重转义 \


       //匹配字符 .
        var reg=new RegExp("\\.")
        console.log(reg)  // ---->   相当于  reg=\\.\
      

        //匹配字符 .
        var reg=new RegExp("\\\\")
        console.log(reg)   // ---->   相当于  reg=\\\\
      

在这里插入图片描述

使用RegExp创建正则表达式,匹配


       //匹配任意字符
        var reg=new RegExp(".")
        console.log(reg.test("232323")) ; //true
        console.log(reg.test("2323.23")) ; //true


        //匹配字符 .
        var reg=new RegExp("\\.")
        console.log(reg)  // ---->   \\.\
        console.log(reg.test("232323")) ; //false
        console.log(reg.test("2323.23")) ; //true


        //匹配字符 \ 
        var reg=new RegExp("\\\\")
        console.log(reg)    // ---->   \\\\
        console.log(reg.test("23232\\3")) ; //true
        console.log(reg.test("2323.23")) ; //false
2)通配符. 的用法

	1、“.(点符号)匹配的是除了换行符“\n”以外的所有字符。
	2、匹配包括换行符在内的任意字符
	                         [\s\S]*          
4.5 边界匹配器
	
	^ 表示开头
	$ 表示结尾
	
			/^str$/ 表示字符串必须完全符合正则表达式
			
			
a)匹配字符串以a开头
        //匹配字符串以a开头
        var reg=/^a/
      
        console.log(reg.test("abcd"));//true
        console.log(reg.test("abc")); //true
        console.log(reg.test("babdss"));//false
b)匹配字符串以a结尾
        //匹配字符串以a结尾
        var reg=/a$/
      
        console.log(reg.test("abcd"));//false
        console.log(reg.test("abc")); //false
        console.log(reg.test("babdssa"));//true
        console.log(reg.test("babda  ssc"));//false
        
c)匹配字符串以a开头或以b结尾

        //匹配字符串以a开头或以b结尾
        var reg=/^a|b$/
      
        console.log(reg.test("abcd"));//true
        console.log(reg.test("abc")); //true


        console.log(reg.test("babdssa"));//false
        console.log(reg.test("babdssb"));//true
        
d)/^str$/ ,表示字符串必须完全匹配
        
        //完全字符串
        var reg=/^ab$/
        
        console.log(reg.test("ab")) ; //true
        console.log(reg.test("ab ab")) ; //false
        console.log(reg.test("a b")) ; //false
        
e)/^str$/ ,验证字符串是否为手机号

        
        //验证是否为手机号
        //13852133975
        // 11 为
        // 第一位为 1
        // 第二位为 3-9 任意数字
        // 其余为0-9 任意数字
        var phoneReg=/^1[3-9][0-9]{9}$/
        
        console.log(phoneReg.test("13654472825")) ; //true
        console.log(phoneReg.test("136544728252323")) ; //false
        
4.6 正则细节
>>>>>> 正则只要匹配到字符串的一部分就返回true,而不是匹配整个字符串相符才返回true。
			var str="121212asd";
			var reg=/[0-9]+/;
			
			var b=reg.test(str)
			alert(b)// true

在这里插入图片描述

>>>>>> 如果正则想匹配整个字符串则要加上边界匹配器
	
					^  表示字符串的开始
				    $  表示字符串的结束
				    
	        var str="121212asd";
			var reg=/^[0-9]+$/;

			var b=reg.test(str)
			alert(b)// false

在这里插入图片描述
常用的正则

					验证邮箱:
					var reg=/^[a-z0-9]\w+@[a-z0-9]+(\.[a-z0-9]+){1,2}$/ig

四、正则表达式应用

4.1 去除空格
>>>>>> 去除字符串所有空格

        var str=prompt("请输入:")

        //去除所有空格
        var reg=/\s/g
        str=str.replace(reg,"");
        console.log(str)
        

在这里插入图片描述
在这里插入图片描述

>>>>>> 去除字符串首尾空格

        var str=prompt("请输入:")

        //去除首尾空格
        var reg=/^\s+|\s+$/g
        str=str.replace(reg,"");
        console.log(str)   

在这里插入图片描述

在这里插入图片描述

4.2 邮件的正则

在这里插入图片描述

        var reg=/^\w+(\.\w+)*@[0-9a-z]+\.[a-z]{2,5}(\.[a-z]{2,5})*$/


        console.log(reg.test("554030346@qq.com"));
        console.log(reg.test("554030346@qq.com.cn"));
        console.log(reg.test("abc.1234@168.com.cn"));

4.3 正则表达式的应用 – 表单验证
>>>>>> 表单的onsubmit事件的应用
	
	表单提交时,会触发onsubmit事件,如果onsubmit事件的方法返回的是true,		
	那么该表单提交成功,否则失败。
    onsubmit绑定函数时,要return该方法
				
	<form action="success.html" method="get" onsubmit="return test()">
	

onsubmit绑定的方法返回false,点击提交按钮时,提交失败。

<body>
	<form action="success.html" method="get" onsubmit="return test()">
		<input type="text" name="k"/>
		<input type="submit" />
	</form>

</body>	
	<script type="text/javascript">
		
		function test(){
			return false;
		}

	</script>

obsubmit绑定的方法返回true,点击提交按钮时,提交失败。

<body>
	<form action="success.html" method="get" onsubmit="return test()">
		<input type="text" name="k"/>
		<input type="submit" />
	</form>

</body>
	
	<script type="text/javascript">
		function test(){
			return true;
		}
	</script>
>>>>>> 表单验证

<!DOCTYPE html>
<html>
<head lang="en">
	<meta charset="utf-8" />

	<style type="text/css">
			.t{
				text-align:center;
				width:100px;
			}

		
			input{
				margin-left:10px;
			}

			

	</style>
</head>	
<body>
	
	<table width="500px" height="400px"style="margin:100px auto; table-layout:fixed;    word-break:break-all;
"  border="1" cellspacing="0" cellpadding="0">

		<form action="success.html" method="get"  onsubmit="return checkAll()">
				<tr>
					<td class="t">用户名:</td>
					<td><input type="text" name="username" onblur="checkName()"/><span></span></td>
				</tr>
				<tr>
					<td class="t">密码:</td>
					<td><input type="password" name="pwd"  onblur="checkPwd()"/><span></span></td>
				</tr>
				<tr>
					<td class="t">确认密码:</td>
					<td><input type="password" name="pwd" onblur="checkPwd2()"/><span></span></td>
				</tr>
				<tr>
					<td class="t">邮箱:</td>
					<td><input type="text" name="email"   onblur="checkEmail()" /><span></span></td>
				</tr>
				<tr>
					<td class="t">性别:</td>
					<td> <input type="radio" name="sex" value="man" /><input type="radio" value="woman" name="sex" /><span></span></td>
				</tr>	
				<tr>
					<td class="t">爱好:</td>
					<td><input type="checkbox" name="like"/>篮球 <input type="checkbox" name="like"/>足球<span></span></td>
				</tr>
				<tr>
					<td class="t">城市:</td>
					<td>
						<select name="city">
							<option value="nj">南京</option>
							<option value="bj">北京</option>
						</select>
						<span></span>
					</td>
				</tr>
				<tr>
					<td class="t">自我描述:</td>
					<td><input type="textarea" rows="4" cols="8" name="self"/><span></span></td>
				</tr>
				<tr>
					<td colspan="2" style="padding-left:400px"><input type="submit" /></td>
				</tr>
	
		</form>
	</table>
</body>

<script type="text/javascript">

		//校验用户名
		function checkName(){
				var obj=document.getElementsByName("username")[0];
				var  username=obj.value
				var reg=/^[A-Z0-9]{6,9}$/ig
				var flag=reg.test(username);
				console.log(flag)
				var p=obj.parentNode;
				var s=p.childNodes[1]
				if(flag){s.innerHTML="正确".fontcolor("green") ;return true}

				s.innerHTML="&nbsp;&nbsp;&nbsp;用户名错误".fontcolor("red")

		}

		//校验密码
		function checkPwd(){
				var obj=document.getElementsByName("pwd")[0];
				var  pwd=obj.value
				var reg=/^[A-Z0-9]{6,9}$/ig
				var flag=reg.test(pwd);
				console.log(flag)
				var p=obj.parentNode;
				var s=p.childNodes[1]
				if(flag){s.innerHTML="正确".fontcolor("green") ;return true}

				s.innerHTML="&nbsp;&nbsp;&nbsp;密码错误".fontcolor("red")
		}

		function checkPwd2(){
				var obj=document.getElementsByName("pwd")[0];
				var obj1=document.getElementsByName("pwd")[1];

				var  pwd=obj.value
				var  pwd1=obj1.value


				var p=obj1.parentNode;
				var s=p.childNodes[1]

				if(pwd==""||pwd!=pwd1){
					s.innerHTML="&nbsp;&nbsp;&nbsp;密码不一致".fontcolor("red")
				}else{
					s.innerHTML="正确".fontcolor("green");return true
				}


			}

			//检验邮箱
			function checkEmail(){
				var obj=document.getElementsByName("email")[0];
				var email=obj.value
				//5454@qq.com  23323232@123.123.com.cn   匹配邮箱正则
				var reg=/^[a-z0-9]\w+@[a-z0-9]+(\.[a-z0-9]+){1,2}$/ig
				var flag=reg.test(email);
				console.log(flag)
				var p=obj.parentNode;
				var s=p.childNodes[1]
				if(flag){s.innerHTML="正确".fontcolor("green") ;return true}

				s.innerHTML="&nbsp;&nbsp;&nbsp;邮箱格式错误".fontcolor("red")

			}

			//表单提交时,重新检查表单项
			function checkAll(){
				
				var f=checkName();
				var f1=checkPwd();
				var f2=checkPwd2();
				var f3=checkEmail();

				return f&&f1&&f2&&f3?true:false;
			}


</script>


</html>		

</script>


</html>		

在这里插入图片描述

五、正则表达式的量词解释


	正则表达式的量词分别式贪婪,惰性,支配性

	1.贪婪量词:先看整个字符串是不是一个匹配。如果没有发现匹配,
	           它去掉最后字符串中的最后一个字符,并再次尝试。
		           
	2.惰性量词: 先看字符串中的第一个字母是不是一个匹配。如果单独
	           这一个字符还不够,就读入下一个字符,组成两个字符的字符串。
	           如果还是没有发现匹配,惰性量词继续从字符串添加字符
	           直到发现一个匹配或者整个字符串都检查过也没有匹配。
 
				惰性量词和贪婪量词的工作方式正好是相反的。
 
	3.支配量词:只尝试匹配整个字符串。如果整个字符串不能产生匹配,不做
	           进一步尝试,支配量词其实简单的说,就是一刀切。

贪 婪惰 性支 配描 述
???+零次或一次出现
**?*+零次或多次出现
++?++一次或多次出现
{n}{n}?{n}+恰好n次出现
{n,m}{n,m}?{n,m}+至少n次枝多m次出现
{n,}{n,}?{n,}+至少n次出现
>>>>>> 贪婪量词测试



<script>
 var str="abbbaabbbaaabbb1234";
 var re1=/.*bbb/g;
 alert(re1.exec(str));
</script>
>>>>>> 惰性量词测试


<script>
 var str="abbbaabbbaaabbb1234";
 var re1=/.*?bbb/g;
 alert(re1.exec(str));
</script>
>>>>>> 支配性量词测试


<script>
 var str="abbbaabbbaaabbb1234";
 var re1=/.*+bbb/g;
 alert(re1.exec(str));
</script>
由于使用支配性量词不能匹配到任何字符串,所以没有截图。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值