javascript正则表达式

一.什么是正则表达式

正则表达式(regular expression)是一个描述字符模式的对象。

RegExp类表示正则表达式,StringRegExp都定义了使用正则表达式进行强大的模式匹配和文本检索与替换的函数。

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

二.创建正则表达式

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

1.两种创建方式

var laber = new RegExp('momo');                //第一个参数字符串
var laber = new RegExp('momo', 'ig');           //第二个参数可选模式修饰符

模式修饰符的可选参数

var laber = /momo/;                            //直接用两个反斜杠
var laber = /momo/ig;                            //在第二个斜杠后面加上模式修饰符

2.测试正则表达式

RegExp对象包含两个方法:test()exec(),功能基本相似,用于测试字符串匹配。test()方法在字符串中查找是否存在指定的正则表达式并返回布尔值,如果存在则返回true,不存在则返回falseexec()方法也用于在字符串中查找指定正则表达式,如果exec()方法执行成功,则返回包含该查找字符串的相关信息数组。如果执行失败,则返回null

RegExp对象的方法

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

var laber = new RegExp('momo', 'i');            //创建正则模式,不区分大小写    
var str = 'This is a momo!';                        //创建要比对的字符串
alert(laber.test(str));                        //通过test()方法验证是否匹配

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

var laber = /momo/i;                            //创建正则模式,不区分大小写
var str = 'This is a momo!';
alert(laber.test(str));

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

var laber = /momo/i;
var str = 'This is a momo!';
alert(laber.exec(str));                        //匹配了返回数组,否则返回null

PSexec方法还有其他具体应用,我们在获取控制学完后再看。

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

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

/*使用match方法获取获取匹配数组*/

var laber = /momo/ig;                        //全局搜索
var str = 'This is a momo!,That is a momo too';
alert(str.match(laber));                        //匹配到两个Box,Box
alert(str.match(laber).length);                //获取数组的长度

/*使用search来查找匹配数据*/     PS:因为search方法查找到即返回,也就是说无需g全局

var laber = /momo/ig;
var str = 'This is a momo!,That is a momo too';    
alert(str.search(laber));                        //查找到返回位置,否则返回-1

/*使用replace替换匹配到的数据*/

var laber = /momo/ig;
var str = 'This is a momo!,That is a momo too';
alert(str.replace(laber, 'xiaoxiao'));                //将momo替换成了xiaoxiao

/*使用split拆分成字符串数组*/

var laber = / /ig;
var str = 'This is a momo!,That is a momo too';
alert(str.split(laber));                        //将空格拆开分组成数组

RegExp对象的静态属性

 

RegExp对象的实例属性

三.获取控制

正则表达式元字符是包含特殊含义的字符。它们有一些特殊功能,可以控制匹配模式的方式。反斜杠后的元字符将失去其特殊含义。

字符类:单个字符和数字

字符类:空白字符

字符类:锚字符

字符类:重复字符

 

posted @ 2018-11-16 14:30  莫小波  阅读(168)  评论(0)    收藏  举报