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 相关文章推荐
浅析JQuery获取和设置Select选项的常用方法总结
Jul 04 Javascript
多个datatable共存造成多个表格的checkbox都被选中
Jul 11 Javascript
jquery队列queue与原生模仿其实现方法分享
Mar 25 Javascript
js 中将多个逗号替换为一个逗号的代码
Jun 07 Javascript
jQuery 写的简单打字游戏可以提示正确和错误的次数
Jul 01 Javascript
详解jQuery中的DOM操作
Dec 23 Javascript
移动端基础事件总结与应用
Jan 12 Javascript
Vue.js实现多条件筛选、搜索、排序及分页的表格功能
Nov 24 Javascript
Vue 中如何正确引入第三方模块的方法步骤
May 05 Javascript
浅谈Vue项目骨架屏注入实践
Aug 05 Javascript
小程序实现锚点滑动效果
Sep 23 Javascript
Vue中使用matomo进行访问流量统计的实现
Nov 05 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
西德产收音机
2021/03/01 无线电
php中对xml读取的相关函数的介绍一
2008/06/05 PHP
PHP超级全局变量数组小结
2012/10/04 PHP
PHP实现的简单缓存类
2015/07/29 PHP
Yii使用Captcha验证码的方法
2015/12/28 PHP
php自定义扩展名获取函数示例
2016/12/12 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
PHP回调函数与匿名函数实例详解
2017/08/16 PHP
ANGULARJS中用NG-BIND指令实现单向绑定的例子
2014/12/08 Javascript
jQuery的css()方法用法实例
2014/12/24 Javascript
微信小程序 教程之模板
2016/10/18 Javascript
浅谈使用splice函数对数组中的元素进行删除时的注意事项
2016/12/04 Javascript
three.js实现3D影院的原理的代码分析
2017/12/18 Javascript
vue-cli 3.0 自定义vue.config.js文件,多页构建的方法
2018/09/19 Javascript
vue 中Virtual Dom被创建的方法
2019/04/15 Javascript
JavaScript如何实现元素全排列实例代码
2019/05/14 Javascript
React.js组件实现拖拽排序组件功能过程解析
2020/04/27 Javascript
[39:53]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第一场 11.19
2020/11/19 DOTA
python通过字典dict判断指定键值是否存在的方法
2015/03/21 Python
Python中装饰器学习总结
2018/02/10 Python
python ddt实现数据驱动
2018/03/14 Python
Python定义一个跨越多行的字符串的多种方法小结
2018/07/19 Python
推荐10款最受Python开发者欢迎的Python IDE
2018/09/16 Python
Django之使用内置函数和celery发邮件的方法示例
2019/09/16 Python
欧洲第一的摇滚和金属乐队服装网站:EMP
2017/10/26 全球购物
波兰快递服务:Globkurier.pl
2019/11/08 全球购物
比较一下entity bean和session bean
2013/12/27 面试题
求职推荐信范文
2013/12/01 职场文书
联谊活动策划书
2014/01/26 职场文书
管理提升方案
2014/06/04 职场文书
商务经理岗位职责
2014/08/03 职场文书
2015年留守儿童工作总结
2015/05/22 职场文书
教师远程研修感悟
2015/11/18 职场文书
Python 高级库15 个让新手爱不释手(推荐)
2021/05/15 Python
MySQL 百万级数据的4种查询优化方式
2021/06/07 MySQL
go使用Gin框架利用阿里云实现短信验证码功能
2021/08/04 Golang