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");	 
    		   }   
                     
    	     }







  • 相关阅读:
    Neo4j的查询语法笔记(二)
    NEO4J -模糊查询
    mybatis常用jdbcType数据类型
    Codrops 优秀教程:CSS 3D Transforms 实现书本效果
    案例分享:20佳应用大图片背景的优秀网站作品
    分享一套精美的现代 UI PSD 工具包【免费下载】
    经验分享:10个简单实用的 jQuery 代码片段
    Popline:帅气的浮动 HTML5 文本编辑器工具栏
    《分享》学习单页网站制作的20个优秀案例
    Minimit Anima – 硬件加速的 CSS3 动画插件
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3180132.html
Copyright © 2011-2022 走看看