js正则表达式的使用详解


Posted in Javascript onJuly 09, 2013

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

Javascript 相关文章推荐
Javascript 面向对象(一)(共有方法,私有方法,特权方法)
May 23 Javascript
js showModalDialog弹出窗口实例详解
Jan 07 Javascript
jquery实现触发时更新下拉列表内容的方法
Dec 02 Javascript
基于javascript实现图片预加载
Jan 05 Javascript
this,this,再次讨论javascript中的this,超全面(经典)
Jan 05 Javascript
Ext JS 实现建议词模糊动态搜索功能
May 13 Javascript
微信小程序使用slider设置数据值及switch开关组件功能【附源码下载】
Dec 09 Javascript
VueAwesomeSwiper在VUE中的使用以及遇到的一些问题
Jan 11 Javascript
node.js中stream流中可读流和可写流的实现与使用方法实例分析
Feb 13 Javascript
Vue通过getAction的finally来最大程度避免影响主数据呈现问题
Apr 24 Javascript
JS中forEach()、map()、every()、some()和filter()的用法
May 11 Javascript
输入框跟随文字内容适配宽实现示例
Aug 14 Javascript
解析Jquery的LigerUI如何实现文件上传
Jul 09 #Javascript
Js(JavaScript)中,弹出是或否的选择框示例(confirm用法的实例分析)
Jul 09 #Javascript
探讨在JQuery和Js中,如何让ajax执行完后再继续往下执行
Jul 09 #Javascript
Jquery中LigerUi的弹出编辑框(实现方法)
Jul 09 #Javascript
浅析js中取绝对值的2种方法
Jul 09 #Javascript
浅析LigerUi开发中谨慎载入common.css文件
Jul 09 #Javascript
浅析Js(Jquery)中,字符串与JSON格式互相转换的示例(直接运行实例)
Jul 09 #Javascript
You might like
如果文字过长,则将过长的部分变成省略号显示
2006/06/26 Javascript
用jquery中插件dialog实现弹框效果实例代码
2013/11/15 Javascript
js中同步与异步处理的方法和区别总结
2013/12/25 Javascript
Ubuntu中搭建Nodejs开发环境过程分享
2014/06/01 NodeJs
indexOf 和 lastIndexOf 使用示例介绍
2014/09/02 Javascript
js实现ifram取父窗口URL地址的方法
2015/02/09 Javascript
Backbone.js框架中简单的View视图编写学习笔记
2016/02/14 Javascript
JS实现左右无缝轮播图代码
2016/05/01 Javascript
jQueryUI Datepicker组件设置日期高亮
2016/10/13 Javascript
bootstrap table 表格中增加下拉菜单末行出现滚动条的快速解决方法
2017/01/05 Javascript
js实现九宫格拼图小游戏
2017/02/13 Javascript
微信小程序 input表单与redio及下拉列表的使用实例
2017/09/20 Javascript
vue.js整合mint-ui里的轮播图实例代码
2017/12/27 Javascript
微信小程序模拟cookie的实现
2018/06/20 Javascript
详解Vue前端对axios的封装和使用
2019/04/01 Javascript
详解小程序云开发数据库
2019/05/20 Javascript
Python实现的爬虫功能代码
2017/06/24 Python
python使用turtle库绘制时钟
2020/03/25 Python
Flask-Mail用法实例分析
2018/07/21 Python
实例讲解Python脚本成为Windows中运行的exe文件
2019/01/24 Python
Python操作配置文件ini的三种方法讲解
2019/02/22 Python
python正则过滤字母、中文、数字及特殊字符方法详解
2020/02/11 Python
加拿大领先的牛仔零售商:Bluenotes
2018/01/22 全球购物
大学生毕业自我鉴定范文
2013/09/19 职场文书
大学生简历中个人的自我评价
2013/10/06 职场文书
标准导师推荐信(医学类)
2013/10/28 职场文书
2014社区三八妇女节活动方案
2014/03/30 职场文书
总经理检讨书
2014/09/15 职场文书
中层领导干部群众路线对照检查材料思想汇报
2014/10/02 职场文书
质量保证书怎么写
2015/02/27 职场文书
个人专业技术总结
2015/03/05 职场文书
学校世界艾滋病日宣传活动总结
2015/05/05 职场文书
活动简报范文
2015/07/22 职场文书
SQLServer2008提示评估期已过解决方案
2021/04/12 SQL Server
PyMongo 查询数据的实现
2021/06/28 Python
用Python爬取英雄联盟的皮肤详细示例
2021/12/06 Python