js正则表达式的使用详解

本文转自:http://www.jb51.net/article/39623.htm

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

      }

转载于:https://www.cnblogs.com/Jtianlin/p/4357608.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/574721.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

帕累托最优生活例子_创业者:用博弈解决生活的难题

博弈策略的成功运用需依赖一定的环境、条件,在一定的博弈框架中进行。许多成语及典故,都是对博弈策略的令人叫绝的运用和归纳。成语故事“黔驴技穷”实际上就包含了一个不完全信息动态博弈。毛驴刚到贵州时,老虎摸不准这个大动物究竟有多大本…

电脑海尔电脑,海尔台式电脑好吗,海尔主机

最近有朋友询问海尔自带Win10系统使用不习惯,如何改成Win7系统的问题,这里小编向大家提供下方法,海尔台式机目前大多使用8代、9代intel处理器,改成Win7除了BIOS需要设置为兼容模式外,还需要你的Win7安装盘具备USB3.0/3…

《软件测试技术》课程第二周随笔

这次的博客内容为,举例解释等价类划分。 1. 问题描述 EditBox 在文本输入框内输入文字,然后按确认键。 允许接收的文字为:1至6个英文字符或数字。 2.等价类划分 有效等价类编号无效等价类编号包括的字符a-z,A-Z,0-91其他字符3字符串长度1-620…

图片句柄_PC微信逆向:自动保存加密的聊天图片

前言本文基于anhkgg大佬的文章《微信PC端技术研究(2)-拿下语音》原文链接:https://bbs.pediy.com/thread-249274.htmanhkgg大佬的这篇文章找到了保存语音消息的接口,这里直接给出相关特征码,方便定位(我使用的微信版本依旧是2.6.8.52)偏移为0…

复制密钥文件到另一台服务器,使用所有ssh密钥从第三台服务器在两台服务器之间远程复制...

我正在用python编写一个部署脚本,但是在我完成它之后,我发现可能不可能实现我的想法。在情况是这样的。在我有三个主人。在主机1:Ubuntu 12.04主机2:SUSE Linux Enterprise Server 11 SP1主机3:Windows Server 2008 R2,安装了Cygwin 1.7.8&am…

Unity手游之路十自动寻路Navmesh之跳跃,攀爬,斜坡

转载 Unity手游之路<十>自动寻路Navmesh之跳跃,攀爬,斜坡 分类&#xff1a; unity2013-12-27 00:50 6545人阅读 评论(5) 收藏 举报unity3dNavmesh手游自动寻路在之前的几篇Blog总&#xff0c;我们已经系统学习了自动寻路插件Navmesh的相关概念和细节。然而&#xff0c;如…

热点分析图_通过分析功率MOSFET管的工作特性,判断其损坏原因

0 前言目前&#xff0c;功率 MOSFET管广泛地应用于开关电源系统及其它的一些功率电子电路中&#xff0c;然而&#xff0c;在实际的应用中&#xff0c;通常&#xff0c;在一些极端的边界条件下&#xff0c;如系统的输出短路及过载测试&#xff0c;输入过电压测试以及动态的老化测…

隔年增长的题_资料分析——隔年增长

【导读】中公事业单位为帮助各位考生顺利通过事业单位招聘考试&#xff01;今天为大家带来事业单位考试题库及答案&#xff1a;资料分析——隔年增长。希望可以帮助各位考生顺利备考&#xff01;在公考中&#xff0c;资料分析的重要性显得尤为重要&#xff0c;面对激烈的竞争和…

Nim博弈游戏

给定n堆石子&#xff0c;每次每人能从一堆石子中取若干个石子&#xff08;不能不取&#xff09;&#xff0c;最后不能取石子者败 对于这个游戏&#xff0c;我们要判断的是&#xff0c;给定局势下&#xff0c;先手者胜还是败 设先手胜的局势为N-postion&#xff0c;先手败的局势…

显示多个页面退出登陆_软件测试小白如何第一次登陆时给LINUX的配置网络

接着上一期分享&#xff0c;今天分享的是虚拟机配置完成以后我们接下来怎么做首先我们进入终端登录以后先显示的是user用户点击user输入密码&#xff0c;回车或者点击sigh ln第一次进入会让你选择语音&#xff0c;你可以根据自己的喜好决定如果安装的可视化界面&#xff0c;你的…

SQL Server的聚集索引和非聚集索引

微软的SQL SERVER提供了两种索引&#xff1a;聚集索引(clustered index&#xff0c;也称聚类索引、簇集索引)和非聚集索引(nonclustered index&#xff0c;也称非聚类索引、非簇集索引)……   (一)深入浅出理解索引结构   实际上&#xff0c;您可以把索引理解为一种特殊的目…

python math库函数源码_11. math库函数

一、math库介绍内置数学类函数库&#xff0c;math库不支持复数类型&#xff0c;仅支持整数和浮点数运算。math库一共提供了&#xff1a;4个数字常数44个函数&#xff0c;分为4类&#xff1a;16个数值表示函数8个幂对数函数16个三角对数函数4个高等特殊函数库中函数不能直接使用…

原理 msc_计算机网络原理梳理丨无线与移动网络

目录无线网络移动网络IEEE802.11蜂窝网络移动IP网络其它典型无线网络介绍无线网络无线网络的基本结构无线主机无线链路基站网络基础设施自组织网络(Ad Hoc网络)无线链路与无线网络特性无线链路与有线链路主要区别&#xff1a;1.信号强度的衰弱2.干扰3.多径传播4.隐藏终端移动网…

如何卸载rpm

首先通过 rpm -q <关键字> 可以查询到rpm包的名字 或者rpm -qa|grep 关键字 然后 调用 rpm -e <包的名字> 删除特定rpm包 如果遇到依赖&#xff0c;无法删除&#xff0c;使用 rpm -e --nodeps <包的名字> 不检查依赖&#xff0c;直接删除rpm包 如果恰好有多…

python实现逐步回归分析_Python实现逐步回归(stepwise regression)

逐步回归的基本思想是将变量逐个引入模型&#xff0c;每引入一个解释变量后都要进行F检验&#xff0c;并对已经选入的解释变量逐个进行t检验&#xff0c;当原来引入的解释变量由于后面解释变量的引入变得不再显著时&#xff0c;则将其删除。以确保每次引入新的变量之前回归方程…

二维数组最大子数组和

一&#xff0e;实验题目 求一个二维数组中和最大的子数组。 二&#xff0e;实验思路 基于我们第一次合作时求的一位数组最大子数组&#xff0c;加上一层循环来遍历二维数组中的所有子矩阵的情况。 第一步&#xff1a;先利用上次的方法求每一行的情况&#xff0c;将每行结果存入…

木炭怎么获得_木炭机一体化流程中制做木炭是怎么完成的

关注我们获得更多精彩内容木炭机一体化流程中制做木炭是怎么完成的&#xff0c;木炭机生产线中炭化炉是核心设备。炭化炉炭化过程决定了木炭质量和效果。木炭机生产线中炭化过程需要经历三个不同温度阶段。三个不同温度阶段对薪棒的炭化作用不同。炭化好坏标志着木炭机制炭效果…

HDU 4540

简单得不能再简单的DP了。 #include<iostream> const int inf1<<30; using namespace std; int map[22][22]; int dp[22][22];//表示前i个时刻在第j个位置时的最小消耗能量 int n,m;int main(){while(~scanf("%d%d",&n,&m)){for(int i1;i<n;i…

esp8266舵机驱动_arduino开发ESP8266学习笔记四—–舵机

arduino开发ESP8266学习笔记四—–舵机使用时发现会有ESP8266掉电的情况&#xff0c;应该是板上的稳压芯片的限流导致的&#xff0c;观测波形&#xff0c;发现当舵机运转时&#xff0c;电源线3.3V不再是稳定的3.3V&#xff0c;大概是在3.0V到3.3V范围内高频振动&#xff0c;这应…

【转载】网易将军令工作原理

最近开始玩梦幻手游&#xff0c;为了领以前端游的返利必须输入将军令&#xff0c;那个已经一年没用了&#xff0c;输入了几次都提示错误&#xff08;后来证实是系统繁忙而已&#xff09;&#xff0c;我以为是将军令时间不对了&#xff0c;所以用了下官网的修复功能。也对将军令…