有一个字符:
http://192.168.10.135/blog/download.aspx/2009%C9%FA%D0%A4%DF%84.doc?File=uploadfile1/2009118144955402.doc
JS Code: var links=document.links;
var link,result;
var re= /(uploadfile\d+)?\d+\.(rar|pdf|doc|xls|zip|ppt)/ig;
var LinkCount=0;
var rxResult;

for (var i=0; i<links.length;i++)
{
link=links[i];
if(!re.test(link.href))
continue;       
rxResult=link.href.match(re);
alert(rxResult+"\n"+rxResult.length);
}
结果alert()弹出(Netscape浏览器):
84,2009118144955402.doc
2也不知道那里跑出来的84真是要命.再问一下.
/ 这个斜线,JS的正侧应该怎么写?
(?<=.....)...(?=....) 这种表达式不能用?

解决方案 »

  1.   

    http://192.168.10.135/blog/download.aspx/2009%C9%FA%D0%A4%DF%84.doc?
      

  2.   

    http://192.168.10.135/blog/download.aspx/2009%C9%FA%D0%A4%DF%84.doc?File=uploadfile1/2009118144955402.doc (uploadfile\d+)?你这个这样写当然匹配84.doc了
      

  3.   

    <script>
     var links=["http://192.168.10.135/blog/download.aspx/2009%C9%FA%D0%A4%DF%84.doc?File=uploadfile1/2009118144955402.doc"];
            var link,result;
            var re= /(uploadfile\d+)?\d+\.(rar|pdf|doc|xls|zip|ppt)(?!\?)/ig;
            var LinkCount=0;
            var rxResult;
            
            for (var i=0; i<links.length;i++)
            {
                link=links[i];
                if(!re.test(link))
                    continue;               
                rxResult=link.match(re);
                alert(rxResult+"\n"+rxResult.length);
            }
    </script>