zoukankan      html  css  js  c++  java
  • javascript求相对路径

              求相对路径的思路:

               比如 

                      var path1 = "D://su/ni/you/tas/you/d.html";
                  var path2 = "D://su/ni/you/tas/b.html";

                如果相对于path1求path2的相对路径,去掉"D://",将剩下的字符串转为数组。

                p1 = ['su','ni','you','tas','you','d.html']    p2 = ['su','ni','you','tas','b.html']

                然后for循环,依次比较p1和p2的元素,例子中,p1[4] != p2[4]   那么d.html要向上走p1.length - 4 值为2.

               也就是   ../../  。p2[4] 的值为 b.html   。 将两者进行拼接, ../../b.html  就是path1相对于path2的相对路径。

               ps 记得要对盘符进行判断,如果不在同一个盘符,那也就没有相对路径一说了。以下是具体实现代码。

    <script>
        var path1 = "D://su/ni/you/tas/you/d.html";
        var path2 = "D://su/ni/you/tas/b.html";
        //求path1 相对于 path2 的相对路径。  ../../you/tas/b.html
        function contrast(p1,p2){
            if(p1.substr(0,1).toUpperCase() != p2.substr(0,1).toUpperCase()){
                   return "不在同一个根目录";
            }
            var arrPath1 = p1.substr(4).split('/');
            var arrPath2 = p2.substr(4).split('/');
            for(var i=0;i<path1.length;i++){
                  console.log(i);
                if(arrPath1[i] != arrPath2[i]){
                    if(arrPath1.length - i > 1){
                          var str = '';
                        
                          for(var j=0;j<arrPath1.length-i;j++){
                                str += '../';
                          }
                          str += arrPath2.slice(i).join("/");
                    }
                    if(arrPath1.length - i == 1){
                        var str="./";
                        str += arrPath2[i];
                    }
                   return str;
                }
            }
        }
        console.log(contrast(path1,path2));
    </script>
  • 相关阅读:
    swift--使用URLSession异步加载图片
    swift--浮点数转换成整数(四舍五入/直接截断)
    swift--环形进度条(UIActivityIndicatorView)的用法
    swift--Timer实现定时器功能,每个一段时间执行具体函数,可以重复,也可以只执行一次
    HTML节点树
    网页的结构
    网页的组成
    HTTP 请求过程
    HTTP 基础术语
    《投资最重要的事》
  • 原文地址:https://www.cnblogs.com/sujianfeng/p/8560785.html
Copyright © 2011-2022 走看看