【发布时间】:2013-08-02 16:10:23
【问题描述】:
在创建一个验证用户 URL 并在前面添加 http: 的函数时,我必须将 www、https 和 // 视为有效 URL。我现在写它的方式(见下文),我只在前面加上 http: ,所以 //stackoverflow.com 的情况不会变成 http:////stackoverflow。 com。
这意味着像 stackoverflow.com 这样的 url 变成 http:stackoverflow.com。
在 Firefox 和 Chrome 中,这工作得很好,但这些 URL 将被各种浏览器和设备点击。 它是通用的吗? 为 // 案例重写此检查很容易,但我对答案很感兴趣。
前置方法:
function prependHTTPtoWebURL() {
var url = (el('org_website').value);
var httpVar;
var testFor;
if (url) {// If there's a website URL value
testFor = url.toLowerCase();
if (testFor.indexOf("http") != 0){
httpVar = 'http:'; //add it
url = httpVar + url;
el('org_website').value = url;
}
}
}
【问题讨论】:
-
他们是否工作应该由你来测试。你是否应该那样做:h*%l 不。这不是编程问题,而是以下类别的问题:我不想修复我的代码并让它变得理智,这个糟糕的解决方案会起作用吗?
-
-
我只会使用一个临时 A 标签来解析和强制任何和所有输入到一个有效的 url,而不是自己做所有的跑腿工作:x=document.createElement("a"); x.href=网址;警报(x.href);
-
@PeeHaa 我无法测试 'http:stackoverflow.com' 是否适用于我没有拥有的设备。你的评论没有提供信息,而且刻薄。谢天谢地,我从其他人那里得到了我想知道的东西。 “不知道,但不要那样做。”
-
@Kate 我们也不可能在所有设备上测试它,不是吗?
标签: javascript mobile browser web