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中的对象创建 实例附注释
Feb 08 Javascript
js opener的使用详解
Jan 11 Javascript
javascript基本类型详解
Nov 28 Javascript
详解Bootstrap按钮
Jan 04 Javascript
JS动态加载脚本并执行回调操作
Aug 24 Javascript
jQuery动态增减行的实例代码解析(推荐)
Dec 05 Javascript
Vue.js 2.5新特性介绍(推荐)
Oct 24 Javascript
node.js博客项目开发手记
Mar 16 Javascript
node实现登录图片验证码的示例代码
Apr 20 Javascript
深入剖析JavaScript instanceof 运算符
Jun 14 Javascript
vue 集成jTopo 处理方法
Aug 07 Javascript
JS实现水平移动与垂直移动动画
Dec 19 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
php用正则表达式匹配URL的简单方法
2013/11/12 PHP
PHP 接入支付宝即时到账功能
2016/09/18 PHP
PHP文件上传处理案例分析
2016/10/15 PHP
php结合redis高并发下发帖、发微博的实现方法
2016/12/15 PHP
php中的单引号、双引号和转义字符详解
2017/02/16 PHP
PHP错误处理函数register_shutdown_function使用示例
2017/07/03 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
PHP中有关长整数的一些操作教程
2019/09/11 PHP
Laravel的Auth验证Token验证使用自定义Redis的例子
2019/09/30 PHP
Laravel 错误提示本地化的实现
2019/10/22 PHP
Javascript 表单之间的数据传递代码
2008/12/04 Javascript
JavaScript中圆括号()和方括号[]的特殊用法疑问解答
2013/08/06 Javascript
JS实现在页面随时自定义背景颜色的方法
2015/02/27 Javascript
three.js中文文档学习之如何本地运行详解
2017/11/20 Javascript
js 索引下标之li集合绑定点击事件
2018/01/12 Javascript
Vue中的transition封装组件的实现方法
2019/08/13 Javascript
js实现金山打字通小游戏
2020/07/24 Javascript
js制作提示框插件
2020/12/24 Javascript
Python中模块(Module)和包(Package)的区别详解
2019/08/07 Python
python打造爬虫代理池过程解析
2019/08/15 Python
python中p-value的实现方式
2019/12/16 Python
Python +Selenium解决图片验证码登录或注册问题(推荐)
2020/02/09 Python
基于django 的orm中非主键自增的实现方式
2020/05/18 Python
css3实现六边形边框的实例代码
2019/05/24 HTML / CSS
HTML5新增元素如何兼容旧浏览器有哪些方法
2014/05/09 HTML / CSS
EMU Australia澳大利亚官网:澳大利亚本土雪地靴品牌
2019/07/24 全球购物
serialVersionUID具有什么样的特征
2014/02/20 面试题
爱情检讨书大全
2014/01/21 职场文书
大队委竞选演讲稿
2014/04/28 职场文书
2014年教学管理工作总结
2014/12/02 职场文书
2014个人年度工作总结范文
2014/12/24 职场文书
出纳岗位职责
2015/01/31 职场文书
2015年班级工作总结范文
2015/04/03 职场文书
毕业生的自我鉴定表范文
2019/05/16 职场文书
python Django框架快速入门教程(后台管理)
2021/07/21 Python
大脑的记忆过程在做数据压缩,不同图形也有共同的记忆格式
2022/04/29 数码科技