Javascript 当URL不包含http时导致问题的打开

Javascript 当URL不包含http时导致问题的打开,javascript,window,Javascript,Window,我有一个文本框,用户可以在其中输入URL和名为Check link的按钮。单击按钮,将打开一个新窗口,其中包含用户输入的URL。如果我输入URL作为“http://google.com“然后打开窗户。”http://google.com'); 工作正常,但如果我输入“www.google.com”,则它将附加到当前窗口url(http://localhost:1234www.google.com)这不是有效的url。如何做到这一点 提前感谢检查并准备 if (!/^(http:|https:)/

我有一个文本框,用户可以在其中输入URL和名为Check link的按钮。单击按钮,将打开一个新窗口,其中包含用户输入的URL。如果我输入URL作为“http://google.com“然后打开窗户。”http://google.com'); 工作正常,但如果我输入“www.google.com”,则它将附加到当前窗口url(http://localhost:1234www.google.com)这不是有效的url。如何做到这一点

提前感谢

检查并准备

if (!/^(http:|https:)/i.test(url))
   url = "http://" + url;
如果您的问题是“如何测试字符串是否以“http://”开头,如果不是以“http://”开头,如何测试字符串是否以“http://”开头?”

var url = "somestring.com"; // as set from your textbox
if (0 != url.toLowerCase().indexOf("http"))
   url = "http://" + url;

在进行此测试之前,修剪前导空格和尾随空格是明智的,但我将留给读者作为练习…

添加onclick按钮函数并处理其中的文本

function checkLink() {
    var url = document.getElementById("textbox-id").value;
   if(url.substr(0,7) != "http://") {
       alert("Invalid URL! Please make it like http://myurl.com");
    return false;
   }
}
试试这个:

function f(url) {
    if (url.indexOf("http://") == -1) {
        url = "http://" + url;
    } 
    window.open(url);
}

谢谢你的答复。。我以这种方式解决了这个问题,但使用regx检查http是否存在。这样看起来很奇怪。只是在尝试其他方法。我不明白是什么导致了这个问题?从我的观点来看,这是一个好问题,因为我们没有在不需要正则表达式的时候浪费资源。对于相同的结果,与正则表达式相比,它的复杂度较低。