码迷,mamicode.com
首页 > 其他好文 > 详细

正则表达式中的转义问题

时间:2015-06-23 15:16:59      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:

     正则表达式是javascript学习中非常重要的一部分,它的主要作用是验证表单。

      说到正则表达式,我们首先想到的是它的创建方式,正则表达式创建的方式有两种:字面量形式和RegExp构造函数。

      首先说字面量形式:

      创建方法:var expression= / pattern / flags ;

      pattern(模式)部分可以是任何简单或复杂的正则表达式,可以包含字符类、限定符、分组、向前查找以及反向引用。

      flags(标志)部分表明正则表达式的行为。其中g表示全局模式,i表示不区分大小写模式,m表示多行模式。

      pattern中所有元字符都需要转义,因为元字符在正则表达式中都有一种或多种特殊的用途元字符包括:( ) [ ] { } \ ^ $ | ? * . + / (”/“书中及参考资料没有提及,个人觉得应该算) 。转义的方式就是在元字符前加反斜杠”\“。

      例如:   

1 /*匹配字符串中所有“Web”实例*/
2 var pattern1=/Web/g;
3 /*匹配字符串中所有“Web+”实例*/
4 var pattern2=/Web\+/g;

     然后说说RegExp构造函数:

      创建方法:var expression=new RegExp("pattern","flags");

      构造函数接受两个参数:要匹配的字符串模式、可选的标志字符串。两个参数的数据类型都是字符串,所以不能把字面量形式中的pattern传递给构造函数。RegExp的pattern中所有元字符都必须双重转义,那些已转义过的字符也如此。

      例如:

 1 /*匹配字符串中所有“\”实例
 2 * 考虑方式1
 3 * 1、把“\”这个内容转化成字符串,因为单独的“\”在字符串中代表转义符,把它打印出来不会有任何东西,所以得到的字符串为“\\”。
 4 * 2、把得到的字符串变为正则表达式字符串,正则表达式中的首个“\”表示转义,所以最终得到的字符串为“\\\\”。
 5 * */
 6 
 7 /*匹配字符串中所有“\”实例
 8  * 考虑方式2
 9  * 1、把“\”这个内容转化成字面量模式的正则表达式,得到的结果为“\\”。
10  * 2、把1中的正则表达式转化成字符串,结果为“\\\\”。
11  * */
12 
13 //以下两行代码在控制台执行。
14 var pattern3=new RegExp("\\\\","g");
15 alert(pattern3.test("\\"));

 

正则表达式中的转义问题

标签:

原文地址:http://www.cnblogs.com/CathySun/p/4595340.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!