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 相关文章推荐
Js 获取当前日期时间及其它操作实现代码
Mar 04 Javascript
Extjs学习笔记之八 继承和事件基础
Jan 08 Javascript
在图片上显示左右箭头类似翻页的代码
Mar 04 Javascript
JS正则表达式获取分组内容的方法详解
Nov 15 Javascript
js形成页面的一种遮罩效果实例代码
Jan 04 Javascript
Javascript优化技巧之短路表达式详细介绍
Mar 27 Javascript
jQuery实现下滑菜单导航效果代码
Aug 25 Javascript
javascript模拟C#格式化字符串
Aug 26 Javascript
AngularJS实现DOM元素的显示与隐藏功能
Nov 22 Javascript
JavaScript学习笔记之惰性函数示例详解
Aug 27 Javascript
vue 利用路由守卫判断是否登录的方法
Sep 29 Javascript
基于Vue实现图片在指定区域内移动的思路详解
Nov 11 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将数据导入到Foxmail
2006/10/09 PHP
php桌面中心(三) 修改数据库
2007/03/11 PHP
php 将字符串按大写字母分隔成字符串数组
2010/04/30 PHP
基于PHP生成静态页的实现方法
2013/05/10 PHP
计算php页面运行时间的函数介绍
2013/07/01 PHP
Yii模型操作之criteria查找数据库的方法
2016/07/15 PHP
PHP入门教程之表单与验证实例详解
2016/09/11 PHP
PDO的安全处理与事物处理方法
2016/10/31 PHP
使用JS操作页面表格,元素的一些技巧
2007/02/02 Javascript
php与js的区别是什么
2013/08/05 Javascript
js四舍五入数学函数round使用实例
2014/05/09 Javascript
jQuery简单验证上传文件大小及类型的方法
2016/06/02 Javascript
基于js对象,操作属性、方法详解
2016/08/11 Javascript
JavaScript模板引擎Template.js使用详解
2016/12/15 Javascript
jQuery使用方法
2017/02/04 Javascript
react native与webview通信的示例代码
2017/09/25 Javascript
谈谈vue中mixin的一点理解
2017/12/12 Javascript
JavaScript实现AOP详解(面向切面编程,装饰者模式)
2017/12/19 Javascript
JS的函数调用栈stack size的计算方法
2018/06/24 Javascript
nodejs npm错误Error:UNKNOWN:unknown error,mkdir 'D:\Develop\nodejs\node_global'at Error
2019/03/02 NodeJs
keep-Alive搭配vue-router实现缓存页面效果的示例代码
2020/06/24 Javascript
JS实现移动端可折叠导航菜单(现代都市风)
2020/07/07 Javascript
vue element实现表格合并行数据
2020/11/30 Vue.js
[01:02:47]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
Python求出0~100以内的所有素数
2018/01/23 Python
tensorflow实现加载mnist数据集
2018/09/08 Python
Python3实现飞机大战游戏
2020/04/24 Python
python关于倒排列的知识点总结
2020/10/13 Python
纯CSS3实现运行时钟的示例代码
2021/01/25 HTML / CSS
英国伦敦的睡衣品牌:Asceno
2019/10/06 全球购物
Habitat家居英国官方网站:沙发、家具、照明、厨房和户外
2019/12/12 全球购物
建筑实习自我鉴定
2013/10/18 职场文书
乡镇交通安全实施方案
2014/03/29 职场文书
物理系毕业生自荐书
2014/06/13 职场文书
会议室使用管理制度
2015/08/06 职场文书
Python Numpy之linspace用法说明
2021/04/17 Python