Javascript 当URL不包含http时导致问题的打开
我有一个文本框,用户可以在其中输入URL和名为Check link的按钮。单击按钮,将打开一个新窗口,其中包含用户输入的URL。如果我输入URL作为“http://google.com“然后打开窗户。”http://google.com'); 工作正常,但如果我输入“www.google.com”,则它将附加到当前窗口url(http://localhost:1234www.google.com)这不是有效的url。如何做到这一点 提前感谢检查并准备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:)/
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是否存在。这样看起来很奇怪。只是在尝试其他方法。我不明白是什么导致了这个问题?从我的观点来看,这是一个好问题,因为我们没有在不需要正则表达式的时候浪费资源。对于相同的结果,与正则表达式相比,它的复杂度较低。