【问题标题】:remove text from url string javascript从 url 字符串 javascript 中删除文本
【发布时间】:2015-09-24 02:13:27
【问题描述】:

我想用 javascript 显示用户所在页面的文件名。例如,

https://test.example.com/wow.html

应该返回

wow

我尝试使用replace() 方法,如下所示:

var url = document.URL;
document.getElementById("code").innerHTML = url.replace("http://test.example.com/", " ");

但我不知道如何删除 .html 扩展名,或者也替换 https 网址。有没有更好的方法来做到这一点?

谢谢。

【问题讨论】:

标签: javascript url replace


【解决方案1】:

另一种可能的方法。

var url = "https://test.example.com/wow.html"

var urlSplit = url.split("/");
var name = urlSplit[urlSplit.length-1].split(".")[0];
console.log(name);

// 使用 my.page.html 之类的名称当然会失败,但这只是为了提供另一种选择。 :)

【讨论】:

    【解决方案2】:

    使用<a> 元素有一个小技巧:

    var parser = document.createElement('a');
    parser.href = "http://example.com/foo.html";
    parser.pathname; // => "/foo.html"
    

    您可以根据需要解析/.html,但您始终会从.pathname 获得正确的返回路径。

    有关此方法的更多信息,请参阅here

    【讨论】:

    • 首先,OP 不希望 .html 出现在输出中。二、不知为什么用解析器代替正则表达式,有什么好处??
    【解决方案3】:

    这可能对你有用:

    document.getElementById("code").innerHTML = url.substring(url.lastIndexOf("/"), url.lastIndexOf("."));
    

    【讨论】:

      【解决方案4】:

      你可能想使用regular expressions,像这样:

      "https://test.example.com/wow.html".match(/https?:\/\/test\.example\.com\/(\w*).html/)
      // Returned list: ["https://test.example.com/wow.html", "wow"]
      

      在开始使用 Regex101 之类的工具时,可能有助于理解表达式:

      【讨论】:

        【解决方案5】:
        var text = "https://test.example.com/wow.html";
        var new_text = text.slice(text.indexOf("//") + 2, text.indexOf(".html")).split('/');
        console.log(new_text[1]);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-01-16
          • 2014-03-02
          • 2020-06-04
          • 2013-10-10
          • 1970-01-01
          • 2014-12-19
          • 2014-08-26
          相关资源
          最近更新 更多