标签: string

  • 给URL加上合理的“/”收尾

    给URL加上合理的“/”收尾

    Astinus 0.2版升级过程中,有一个Feature是这样的:

    小雷的数据源只能识别如“http://www.zol.com.cn/”的请求,前面必须有http,后面必须有“/”。我的目标是无论用户输入什么,都能得到正确的结果。

    开始想的比较简单,直接就这么写了

    function correctURL (str) {
      var tail = url.substr(url.lastIndexOf('/') + 1);
      if (tail.indexOf('?') == -1 && tail.charAt(tail.length - 1) != '/') {
        url += '/';
      }
      return url;
    }

    写这段代码时已过午夜,脑子比较糊涂,次日中午反应过来,赶紧修改,经过反复调试,得到正确结果:

    function correctURL(str) {
      var tail = url.substr(url.lastIndexOf('/') + 1);
      if (tail != '' && tail.match(/\.(s?html?|php|asp)/) == null && tail.charAt(tail.length - 1) != '/') {
        url += '/';
      }
      return url;
    }

    顺便说下,Chrome的JavaScript控制台在调试时真好用。另外,将来也要考虑采用测试驱动的方法来写JS了。