将“ http://”或“ https://”添加到仅包含以“ www”开头的相对URL的URL

时间:2018-10-02 15:01:40

标签: http url https

有人可以帮助我修复此小代码,以将协议“ http://”或“ https://”添加到仅包含以“ www”开头的相对URL的URL

<script>
function formatUrl(url)
{
    var httpString = "http://";
    var httpsString = "https://";
    if (url.substr(0, httpString.length).toLowerCase() !== httpString && url.substr(0, httpsString.length).toLowerCase() !== httpsString)
                url = httpString + url;
    return url;
}
</script>



  <form id=url type=get action='answers.asp'  >
  <input type=text name=URL size=10 value="" ><br><br>
  <input type=submit name=url2  **onclick="formatUrl()"** value="Enter Url">
  </form>

输入值= www.elmundo.es或任何其他以www开头的相对网址

先谢谢您

1 个答案:

答案 0 :(得分:-1)

实际上这是一个非常简单的任务:

function formatURL(url)
{
    if(url.substr(0,3) === "www")
    {
        return "https://"+url;
    }
    return url;
}

您可以添加一些其他的故障安全检查(如果url小于3)-但是通常您可以检查url是否以www开头,如果是,则只需向其中添加所需的协议(如果我理解您的问题)。

啊,我想我现在明白了你的要求。

<script>
function formatURL()
{
    var url = document.getElementsByName("URL")[0];
    var formattedURL = document.getElementsByName("formattedURL")[0];
    url = url.value;
    if(url.substr(0,3) === "www")
    {
        formattedURL.value = "https://"+url;
        return;
    }
    formattedURL.value = url;
}
</script>

<form id=url type=get action='answers.asp'>
  <input type="text" name="URL" size=10 value=""  onchange="formatURL()"><br><br>
  <input type="hidden" name="formattedURL">
  <input type="submit" value="Enter Url">
  </form>

这将把URL设置为隐藏字段formattedURL的格式-但是,仅当您真的想完全使用Javascript进行此操作时,才可以设置该URL。我将亲自在服务器端执行此操作。