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中应用正则表达式验证控件的使用,对其进一步加深理解。呵呵~

 

posted @ 2010-03-10 14:16  Youngman  阅读(7373)  评论(0编辑  收藏  举报