JS中正则表达式概述

前言:

      在上一篇博文《ASP.NET中验证控件的使用》中,其RegularExpressValidation验证控件就是应用正则表达式的,只不过是将正则表达式封装了起来。而这里将对正则表达式做一点概述。

 

正则表达式的创建:

     正则表达式,即由普通字符(例如,从a,至 z)和特殊字符(称为元字符) 组成的文字模式。将其与字符串相匹配而得到结果(具体待下文续。。。)

    先看最基本的表达式创建法。

     //  Description: 演示正则表达式的创建

     
//  CopyRight: http://www.cnblogs.com/yangmingming

     
//  Notes: 最基本的创建法演示

       
var  re = new  RegExp ();
       
// RegExp 是JS中的类,同Array类似。然而这个创建方法没有指定表达式内容
       re = new  RegExp ( " a " );
       
// 最简单的正则表达式,将匹配字母a 
       re = new  RegExp ( " a " , " i " );
       
// 重载的构造函数,其第二个参数指定将不区分大小写


  其中,对于第二个参数,为可选参数,包括三种:

  • g :全文查找;
  • i :不区分大小写;
  • m:多行查找;

  然而更为常见的正则表达式创建法则是:字面量的声明方式。 即:

     //  Description: 演示正则表达式的创建

     
//  CopyRight: http://www.cnblogs.com/yangmingming

     
//  Notes: 最基本的创建法演示

       
var  re = / a / i;
       
// 其作用同:re=new RegExp ("a","i"),而且更常用。


正则表达式的方法、属性:

 

  其中将对正则表达式的常用方法和属性,以及相关的String的match方法讲述。

正则表达式方法:

  • test 方法:返回Boolean型。它指出被查找的字符串中是否包含该模式。如果存在返回True,否则返回False;
  • exec 方法:用正则表达式模式在字符串中寻找,并返回符合该正则表达式模式的数组;

 正则表达式属性:

  • source 属性:返回正则表达式的文本内容。只读;

 String 的匹配正则表达式的方法:

  • match 方法:找到一个或多个正则表达式的匹配,类似exec 方法,返回一数组

上述方法、属性示例代码如下:

 

代码
     //  Description: 演示正则表达式的创建

     
//  CopyRight: http://www.cnblogs.com/yangmingming

     
//  Notes: 最基本的创建法演示

       
// 测试test方法:
        var  re = / ^[a-z]+\s+\d+$ / i; // +表示字符至少出现一次,\s表示一空白字符,\d表示一数字
        var  osVersion = " Ubuntu 8 " ;
       alert(re.test (osVersion ));
// True;
       
       
//  测试exec方法,它比较特殊,其第1号索引开始,包含的是子匹配元素
        var  re = / ^[a-z]+\s+(\d+)$ / i;  // 子匹配用()定义;
        var  arr = re.exec (osVersion );
       alert (arr [
0 ]); // osVersion完整字符串;
       alert (arr [ 1 ]); // 8;
       
       
// 测试match方法 
        var  str = " My Name Is Yangmingming " ;
       re
= / [A-Z] / g;   // g代表全局变量,否则得到数组长度为1;
        var  arr = str.match (re);
       alert (arr); 
// 输出M,N,I,Y;
       
       
// 测试属性source
        var  re = / [a-z] / i;
       alert (re.source );
// 输出[a-z];

 

     给我的感觉,比较常用的就是正则表达式的test方法了,因为大多只需要知道:某个字符串是否匹配某正则表达式,是则True,否则为False;

 

正则表达式在JS中的应用:

      上篇关于验证控件的文章中的RegarExpressValidation控件可以方便的实现,所输入文本框的内容是否符合有效性数据验证。然而在此我们应用JS中的直接对正则表达式的应用。

 环境布置:

    设置最简单的一个邮箱文本输入框,一个提交按钮。当输入格式不符时,alert并且返回false,否则返回true;

 

< head runat = " server " >
    
< title > 正则表达式演示页面 < / title>
     < script type  = " text/javascript "  language  = " javascript "   >
    
//  Description: 简单示例,演示JS中应用正则表达式情形

   
//  CopyRight: http://www.cnblogs.com/yangmingming

   
//  Notes: 当输入不符时,alert并返回false;

    
function  BtnSubmit()
    {
      
var  re  =   / ^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$ / ;// 邮箱的正则表达式
       
var  txtMail = document .getElementById ( " txtMail " ).value;
       
if ( ! re.test (txtMail ))
       {
         alert (
" 邮箱格式不符! " );
         
return   false  ;
       }
       
else  
       
return   true  ;
    }
    
< / script>
< / head>
< body >
    
< form id = " form1 "  runat = " server " >
    
< div >
        邮箱:
< asp:TextBox ID = " txtMail "  runat = " server " >< / asp:TextBox>
         < br  / >
         < asp:Button ID = " btnSubmit "  runat = " server "  Text = " 提交 "   
            OnClientClick 
= " return BtnSubmit(); "  onclick = " btnSubmit_Click "/ >
     < / div>
     < / form>
< / body>
< / html>

当输入不符时,如图示:

JS中正则表达式概述 

 

  综述之,对正则表达式进行了一些概述,然而它本身是一个非常宽的概念,不可能面面俱到。在最后也实际举例在JS中应用正则表达式验证控件的使用,对其进一步加深理解。呵呵~

 

你可能感兴趣的:(正则表达式)