JavaScript

给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了。

如果您觉得文章内容对您有用,不妨支持我创作更多有价值的分享:


已发布

分类

,

来自

评论

欢迎吐槽,共同进步

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据