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


原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/11228.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论