zoukankan      html  css  js  c++  java
  • [置顶] js正则表达式的使用

    js中的正则表达式比起C#中的正则表达式要弱很多,但基本够用了
    1定义正则表达式
    2关于验证的三个这则表达式方法


    3正则表达式式的转义字符


    1定义正则表达式

    在js中定义正则表达式很简单,有两种方式,一种是通过构造函数,一种是通过//,也就是两个斜杠。
    例如
      var   re =new RegExp("\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}");
     使用构造函数定义正则表达式,注意大小写,负责就会不起作用。由于构造函数的参数是一个字符串,也可以是两个斜杠的方式定义,遇到一些特殊字符就需要使用 进行转义
    通过双斜杠的方式定义同样的正则表达式
    var   re =/?(w{1,}=w{1,}&){1,}w{1,}=w{1,}/;
     
    var re =new RegExp( /^?(w{1,}=w{1,}&){1,}w{1,}=w{1,}/);


    可以和构造函数达到同样的效果,但仔细分析,发现,通过构造函数需要更多的转义字符


    2关于验证的三个正则表达式方法

      使用正则表达式的主要有字符串的方法match,正则表达式的方法exec,test


    正则表达式方法test测试给定的字符串是否满足正则表达式,返回值是bool类型的,只有真和假,如果只是单纯的判断,不需要其他的处理,可以使用
    尤其是验证时。
     function test(){	
    		  var text="index.aspx?test=1&ww=2&www=3";	//    
    	     var   re =/?(w{1,}=w{1,}&){1,}w{1,}=w{1,}/;
    	   //  var   re =new RegExp("\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}");
    	       var result=  re.test(text);
    		   if(result)
    		   {
    		      alert("ok");	  
    		   }else
    		   {
    		    alert("err");	 
    		   }            		   
    		
    	     }


    正则表达式方法exec测试给定的字符串是否满足正则表达式,返回匹配到的字符串,如果没有匹配的则返回null,和test基本一致,如果需要获取匹配的各个子字符串,可以使用下标的方式,把上边的test的例子可以改写如下
    	function test(){	
    		 var text="index.aspx?test=1&ww=2&www=3";
                var   re = /?(w{1,}=w{1,}&){1,}w{1,}=w{1,}/;
    	  //  var   re =new RegExp( "\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}");
    	       var result=  re.exec(text);	
    		    if(result)
    		   {
    		         alert("ok");	
                              alert(result);	 // 是?test=1&ww=2&www=3,ww=2&		   
    		          alert(result[0]+",0");//是?test=1&ww=2&www=3
    			  alert(result[1]+",1");//是ww=2&			  
    		   }else
    		   {
    		    alert("err");	 
    		   }   
                     
    	     }

    match其实是字符串的方法,但参数确是一个正则表达式,把上边的例子改写后,如下
    	function test(){	
    		  var text="index.aspx?test=1&ww=234";	//
              var   re = /?(w{1,}=w{1,}&){1,}w{1,}=w{1,}/;
    	    //   var   re2 = "(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}"
    			  var result= text.match(re);
    			    if(result)
    		       {
                               alert(result);//?test=1&ww=234,test=1&	  			  
    		            alert(result[0]+",0");//?test=1&ww=234
    			     alert(result[1]+",1");//test=1&
    			}else
    		        {
    		        alert("err");	 
    		       }  
    	     }

    其实字符串类还有多个函数可以传递正则表达式,split,search,replace等但这些方法已经不适合验证了。
     function test(){	
    		  var text="index.aspx?test=1&ww=234";	//
              var   re = /?(w{1,}=w{1,}&){1,}w{1,}=w{1,}/;
    	    //   var   re2 = "(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}"
    			  var result= text.split(re);			  
                      alert(result);	  			  
    		         alert(result[0]+",0");
    			     alert(result[1]+",1");				
    	     }


    3正则表达式式的转义字符

    在正则表达式中会经常出现转义字符,例如问号?在正则表达式中有特殊的含义,如果需要匹配问号?就需要转义,使用转义字符反斜杠
    如下两个都是匹配问号开头的一段字符串
     function test(){	
    		 var text="?test=1&ww=2&www=3";
               var   re = /^?(w{1,}=w{1,}&){1,}w{1,}=w{1,}/;//  ?表示配置问号?
    
    	  //  var   re =new RegExp( "^\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}");//  \?表示配置问号?
    	       var result=  re.exec(text);	
    		    if(result)
    		   {
    		         alert("ok");	
                     alert(result);	  		   
    		         alert(result[0]+",0");
    			     alert(result[1]+",1");			  
    		   }else
    		   {
    		    alert("err");	 
    		   }   
                     
    	     }







  • 相关阅读:
    LeetCode153 Find Minimum in Rotated Sorted Array. LeetCode162 Find Peak Element
    LeetCode208 Implement Trie (Prefix Tree). LeetCode211 Add and Search Word
    LeetCode172 Factorial Trailing Zeroes. LeetCode258 Add Digits. LeetCode268 Missing Number
    LeetCode191 Number of 1 Bits. LeetCode231 Power of Two. LeetCode342 Power of Four
    LeetCode225 Implement Stack using Queues
    LeetCode150 Evaluate Reverse Polish Notation
    LeetCode125 Valid Palindrome
    LeetCode128 Longest Consecutive Sequence
    LeetCode124 Binary Tree Maximum Path Sum
    LeetCode123 Best Time to Buy and Sell Stock III
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3180132.html
Copyright © 2011-2022 走看看