前言:
在上一篇博文《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");
//重载的构造函数,其第二个参数指定将不区分大小写
// 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"),而且更常用。
// 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];
// 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];