正则表达式,也不是第一次与它见面了。在我们学习ASP.NET视频的时候,验证控件的那个实例中,就有提到过它。那个时候,都是在控件的属性中自己设置的,用的原理就是正则表达式,当时得感觉就是方便,强大,给我们带来了很大的便利。这一次,就是对正则表达式的深入学习了。 一.什么是正则表达式 正则表达式(regular expression)是一个描述字符模式的对象。ECMAScript的RegExp类表示正则表达式。 正则表达式主要用来验证客户端的输入数据。因为客户端验证,可以节约大量的服务器端的系统资源,并且提供更好的用户体验。 假设用户需要在HTML表单中填写姓名、地址、出生日期等。那么在将表单提交到服务器进一步处理前,JavaScript程序会检查表单以确认用户输入了信息并且这些信息是符合要求的。 二.创建正则表达式 创建正则表达式提供了两种方法,一种是采用new运算符,一种是采用字面量方式。 1.两种创建方式 var box = new RegExp('box'); //new的方法 var box = /box/; //字面量的方法 2.测试正则表达式 RegExp对象包含两种方法用于测试字符串匹配,test()和exec(). test()方法在字符串中查找是否存在制定的正则表达式并返回布尔值,如果存在则返回true,不存在返回false; exec()方法也用于在字符串中查找制定正则表达式,如果执行成功,返回包含该查找字符串的相关信息数组,执行失败,返回null。 3.String对象使用正则表达式的4个方法
- match方法获取匹配数组
- replace方法替换匹配到的数据
- search方法查找匹配数组
- split方法拆分成字符串数组
三.获取控制
光从这个名称来看,一点也不知道这里讲的应该会是写什么。所以直接从后面的例子及实现出发,看看它究竟是什么。
实例1:
var pattern =/g..gle/; //点符号表示匹配除了换行符外的任意字符
var str='g12gle';
alert(pattern.test(str)); //返回的结果为true
实例2:
var pattern =/go*gle/; //o*,表示0个,1个,或者多个o
var str='gbbbgle';
alert(pattern.test(str)); //返回的结果为false
实例3:
var pattern =/g.?gle/; //.?,表示1个,或者0个的任意字符
var str='gbbgle';
alert(pattern.test(str)); //返回的结果为true
这样看来,获取控制其实是通过各种特殊字符从而去验证是否能与字符串相匹配。因为有些信息的验证并不是唯一的,比如说,我们验证用户的联系方式是否输入合理,我们不能把联系方式写死了,每个用户的信息都是不一样的,这时候,就需要运用各种字符,字符的表示含义扩大了,从而去与用户的信息相匹配就变得灵活了。
下面将举几个常用的正则中就有用到这部分的内容,从实例看,或许就更清楚了。
四.常用的正则
1.检查邮政编码
var pattern = /[1-9][0-9]{5}/; //共六位数字,第一位不能为0
var str ='224000';
alert(pattern.test(str)); //返回的结果为true
2.检查文件压缩包
var pattern =/[\w]+\.zip|rar|gz/; //\w表示所有数字和字母加下划线
var str = '123.zip'; //\.表示匹配,后面是一个选择
alert(pattern.test(str)); //返回的结果为true
五.学习感受
正则表达式的学习,在没有深入了解之前,就见识到了它的厉害之处。所以,很大程度上激发了自己的学习兴趣,很想做深入的了解。而在学习这部分内容的过程中,大体上没有什么困难的,有些不理解的通过实例自己去验证,去匹配,也就都解决了。正则表达式,很强大,很方便,很喜欢。