就是一个URL的匹配(是否是文件下载的链接):以“http、https、ftp”打头 “.ppt .doc .pdf ...”结尾,排除(https://test.html?test='.pdf')情况
我写了一个:
var regu = "^(http|https|ftp)://[a-zA-Z0-9\./]+\.(?:ppt|doc|pdf)/$";但有种情况也需要是合法的后面参数问题
例如:
https://test.html?test.pdf?type='.pdf' 请问这种情况怎么写?

解决方案 »

  1.   

    排除(https://test.html?test='.pdf')情况但有种情况也需要是合法的后面参数问题:https://test.html?test.pdf?type='.pdf'  
    到底是合法还是不合法?
      

  2.   

    不好意思我写错了:
    https://test.html?test.pdf?type='.pdf'  应该是:
    https://test.pdf?type='.pdf'
      

  3.   

    /^(https|http|ftp).+?\.(pdf|doc|ppt)(\?.+)?$/
      

  4.   

    http://test.pdf 合法
    http://test.html?type=.pdf 不合法
    http://test.pdf?type=.pdf 合法知道我的意思了吗?
    ftp https 打头的都可以的
      

  5.   


    <script language="javascript">
    var arr= new Array("http://aa/test.pdf","http://aa/test.html?type=.pdf","http://aa/test.pdf?type=.pdf");
    var pattern = /^(http|ftp|https):\/\/[/\w]+\.(pdf|ppt|doc)$|^(http|ftp|https):\/\/[/\w]+(\.(pdf|doc|ppt))\?type=\4$/i;
    for(var i=0;i<arr.length;i++){
    var str = arr[i];
    alert(pattern.test(str));
    }
    //不知道是不是这个意思
    </script>
      

  6.   

    这样就可以了,后面参数无所谓的
    var requ = /^(http|ftp|https):\/\/[/\w]+\.(pdf|ppt|doc)$|^(http|ftp|https):\/\/[/\w]+(\.(pdf|doc|ppt))\?/;