昨天在做mergeCSS的时候遇到两个正则匹配的问题,也花了不少的时间,最后在CSS森林群的 CE 同学帮助下,才完成了这俩正则,特别记录下,以后可能也会用到。
第一个是匹配图片路径的问题,要处理的字符串是:
|              以下为引用的内容:              |         
我一开始写的是:
|              以下为引用的内容:              |         
得到的结果为:
|              以下为引用的内容:              |         
可以看到,把两个图片匹配成了一个,结果不是所希望得到的。把它改为惰性匹配,如下:
|              以下为引用的内容:              |         
得到的结果为:
|              以下为引用的内容: url(demo.jpg);  |         
匹配到了两个图片,是所要的结果了。:)
第二个问题是正则表达式中使用变量的问题,简单解释下为什么加变量也会成为问题,先看下 RegExp 对象 和 replace() 方法 的说明,Javascript的正则一般的书写方式是:
|              以下为引用的内容:              |         
所有在“/”中间的内容都会被当成正则表达式,于是变量名也就被当成字符串了。不加“/”?也行,不过不加“/”的话就不能指定匹配模式,也就只能匹配到第一个。
|              以下为引用的内容: 通过RegExp对象可以生成一个新的 RegExp 对象,具有指定的模式和标志。  |         
于是:
|              以下为引用的内容: 
  |         
这里要注意的是使用“\\”的方式的方式进行转义,因为
|              以下为引用的内容: 如果参数 pattern 是正则表达式而不是字符串,那么 RegExp() 构造函数将用与指定的 RegExp 相同的模式和标志创建一个新的 RegExp 对象。  |         
这个过程中“\\”会被转换成“\”,即上面的结果是:
|              以下为引用的内容: 
  |         
原文地址:http://www.cssforest.org/blog/index.php?id=153


广州市越秀区沿江中路313号康富来国际大厦1203-1205室
深圳市福田区深南大道6007号安徽大厦创展中心18楼14-17室
上海市长宁区延安西路895号申亚金融广场18楼D2-10
佛山市禅城区季华五路万科金融中心3313室
Copyright © 2003-
             互诺科技, All Rights Reserved  
            
粤公网安备 44010402000282号  粤ICP备09019378号-1
            
    
    
    
    
