首页 > 技术文章 > 正则表达式 初级

cbhello 2013-11-24 14:55 原文

一.什么是正则表达式
正则表达式(regular expression)是一个描述字符模式的对象。ECMAScript 的 RegExp 类表示正则表达式, 而 String 和 RegExp 都定义了使用正则表达式进行强大的模式匹配和文本检索与替换的函数。

正则表达式主要用来验证客户端的输入数据。 用户填写完表单单击按钮之后, 表单就会被发送到服务器,在服务器端通常会用 PHP、 ASP.NET 等服务器脚本对其进行进一步处理。
因为客户端验证,可以节约大量的服务器端的系统资源,并且提供更好的用户体验。

 

二.创建正则表达式
创建正则表达式和创建字符串类似, 创建正则表达式提供了两种方法, 一种是采用 new 运算符,另一个是采用字面量方式。

1.两种创建方式

var box = new RegExp('box');   //第一个参数字符串  

var box = new RegExp('box','ig');   //第二个参数可选模式修饰符  

 模式修饰符的可选参数

   i : 忽略大小写

        g :全局匹配

        m :多行匹配

 

var box = /box/;   //直接用两个反斜杠 

var box = /box/ig;   //在第二个斜杠后面加上模式修饰符  

2.测试正则表达式
RegExp 对象包含两个方法: test()和 exec(), 功能基本相似, 用于测试字符串匹配。

test()方法在字符串中查找是否存在指定的正则表达式并返回布尔值, 如果存在则返回 true, 不存在则返回 false。

exec()方法也用于在字符串中查找指定正则表达式,如果 exec()方法执行成功,则返回包含该查找字符串的相关信息数组。如果执行失败,则返回 null。

/*使用 new 运算符的 test 方法示例*/

var pattern = new RegExp('box', 'i'); //创建正则模式,不区分大小写  

var str = 'This is a Box!'; //创建要比对的字符串  

alert(pattern.test(str)); //通过 test()方法验证是否匹配  

/*使用字面量方式的 test 方法示例*/

var pattern = /box/i; //创建正则模式,不区分大小写  

var str = 'This is a Box!';  

alert(pattern.test(str)); 

/*使用 exec 返回匹配数组*/

var pattern = /box/i;  

var str = 'This is a Box!';  

alert(pattern.exec(str)); //匹配了返回数组,否则返回 null  

 

 

3 , 使用字符串的正则表达式方法

  除了test()和exec()方法,String对象也提供了4个使用正则表达式的方法;

  String 对象中的正则表达式方法

     match(pattern) :                   返回pattern中的子串或null

     replace(pattern,reolacement) :  用replacement替换pattern

     search(pattern) :                    返回字符串中pattern开始位置

     split(pattern) :                      返回字符串按指定pattern拆分的数组

 

 参考:http://chaoyi.iteye.com/blog/1979665

 

 

 

 

 

推荐阅读