我应该创建一个函数来测试URL的有效性,然后根据某些字符的位置查找并返回URL字符串的部分(位置是未知的)。仅供参考,我对编程非常陌生,但一直在寻找和尝试许多答案。我的最新尝试使用了以下格式(在答案中找到),但在调用函数时仍然无法获得除空字符串之外的任何内容。
当我在Chrome中运行此功能时,请输入" http://www.niagaracollege.ca"或" http://lego.ca"即使我输入了有效的网址,我也会收到错误的回复。
function validURL(userInput)
{
input = new String(userInput);
if (input.indexOf("://") != -1 && input.lastIndexOf(".") != -1)
return true;
else
return false;
}
function findProtocol(userInput)
{
input = new String(userInput);
var result = input.substring(0, input.indexOf("://"));
return result;
}
function findServer(userInput)
{
input = new String(userInput);
var result = input.substring(input.indexOf("://") + 1 ,input.lastIndexOf("."));
return result;
}
function findDomain(userInput)
{
input = new String(userInput);
var result = input.substring(input.lastIndexOf(".") + 1);
return result;
}
function btnReadURL_onclick()
{
var userInput = document.getElementById("txtURL").value;
var outputBox = document.getElementById("txtOutput");
var URL = validURL(userInput);
if (URL = true)
{
var Part1 = findProtocol(userInput);
var Part2 = findServer(userInput);
var Part3 = findDomain(userInput);
outputBox.value = "Protocol: " + Part1 + "\nServer: " + Part2 +
"\nDomain: " + Part3;
}
else (URL == true)
outputBox.value = "Invalid URL";
}
答案 0 :(得分:0)
使用调试器找出userInput中的内容。代码很好。它应该工作。请参阅下面的示例代码。
test = function() {
var test = "http://Test 2"
alert(test.substring(0, test.indexOf("://")))
}
答案 1 :(得分:0)
您需要将值传递给findProtocol方法而不是DOM元素
替换
var userInput = document.getElementById("txtURL");
通过
var userInput = document.getElementById("txtURL").value;
并替换
if (URL = true)
与
if( URL == true )