一、WHAT
什么叫正则表达式?
正则表达式(Regular Expression)是一个描述字符模式的对象,ECMAScript的RegExp类表示正则表达式,而String和RegExp都定义了使用正则表达式进行强大的模式匹配和文本检索和替换的函数。正则表达式通常被用来检索、替换那些符合某个模式的文本。
为什么要用正则表达式?
用来验证客户端的输入数据。用户填写完表单按钮之后,表单就会被发送到服务器,在服务器端通常会用PHP、ASP.NET等服务器脚本对其进行进一步处理,而用客户端验证,可以节约大量的服务器端的系统资源,并且提供更好的用户体验,所以,我们用正则表达式来进行验证客户输入的格式是否正确。
二、HOW
如何创建一个正则表达式呢?有2种方法
1、Var box=new RegExp('box'); //第一个参数字符串限制格式,都包含box才都。
Var box=new RegExp('box','ig'); //第二个参数可选模式修饰符
其中:参数i表示忽略大小写
g 全局匹配
m 多行匹配
2、var box=/box/;
var box=/box/ig;
如何测试是否符合正则表达式? 2种方法:test()和exec()
1、test()
查找用户输入的字符串中是否存在指定的正则表达式,并返回boolean值。
举例:
var pattern=new RegExp('box','i'); //var pattern=/box/i;
var str='This is a Box!';
alert(pattern.test(str));
2、exec()
也是查找是否存在,如果存在,那就返回用户所输入的(包含正则表达式规定内容)的信息数组,如果不包含,就返回null。
举例:
var pattern=new RegExp('box','i'); //var pattern=/box/i;
var str='This is a Box!';
alert(pattern.exec(str));
另外,string对象也提供了4个使用正则表达式的方法。
三、获取控制
如果用字符类匹配:
var pattern=/g.*gle/; //匹配0个或一个或多个
var str='google';
alert(pattern.test(str));
有很多可以控制的类型表达式,这里就不一一列举了。
关于贪婪和惰性
具体使用看下面的例子;
惰性:(只替换了第一个),如果是贪婪的话,就相当于
var pattern=/[a-z]+?/
var str='abcdefjhi';
var result=str.replace(pattern,'xxx');
alert(result);
四、常用的正则表达式
正则表达式增强了用户的体验度,在客户端验证用户的输入的格式,也节约了服务器的系统资源。