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了。
欢迎吐槽,共同进步