【问题标题】:Removing a letters located between to specific string删除位于特定字符串之间的字母
【发布时间】:2016-01-12 20:15:23
【问题描述】:

我想确保我从 window.location 获得的 URL 尚未包含特定的片段标识符。如果是这样,我必须删除它。所以我必须搜索 URL,找到以 mp- 开头并一直持续到结束 URL 或下一个 # 的字符串(以防 URL 包含多个片段标识符)。

输入输出示例:

www.site.com/#mp-1 --> www.site.com/
www.site.com#mp-1 --> www.site.com
www.site.com/#mp-1#pic --> www.site.com/#pic

我的代码:

(显然不能正常工作)

var url = window.location;
if(url.toLowerCase().indexOf("#mp-") >= 0){
   var imgString = url.substring(url.indexOf('#mp-') + 4,url.indexOf('#'));
   console.log(imgString);
}

知道怎么做吗?

【问题讨论】:

    标签: javascript uri fragment-identifier


    【解决方案1】:

    这样的?这使用正则表达式来过滤不需要的字符串。

    var inputs = [
      "www.site.com/#mp-1",
      "www.site.com#mp-1",
      "www.site.com/#mp-1#pic"
    ];
    
    inputs = inputs.map(function(input) {
      return input.replace(/#mp-1?/, '');
    });
    
    console.log(inputs);
    

    输出:

    ["www.site.com/", "www.site.com", "www.site.com/#pic"]
    

    jsfiddle:https://jsfiddle.net/tghuye75/

    我使用的正则表达式 /#mp-1?/ 会删除任何字符串,例如 #mp-#mp-1。对于在下一个主题标签之前长度未知的字符串,您可以使用 /#mp-[^#]* 删除 #mp-#mp-1#mp-somelongstring

    【讨论】:

    • 请注意,仅当要删除的字符串恰好是#mp-1#mp- 时才有效。
    【解决方案2】:

    使用正则表达式:

    var url = window.location;
    var imgString = url.replace(/(#mp-[^#\s]+)/, "");
    

    它会从 URL 哈希中删除从 mp-# 之前的字符的任何内容。

    Regex101 demo

    【讨论】:

      【解决方案3】:

      您可以使用.replace 将匹配的正则表达式(“#mp-”后跟0 个或多个非# 字符)替换为空字符串。如果您可能要删除多个段,只需在正则表达式中添加 g 标志。

      url = url.replace(/#mp-[^#]*/, '');
      

      【讨论】:

        【解决方案4】:

        window.location 具有 hash 属性,所以... window.location.hash

        最原始的方式是声明

        var char_start, char_end
        

        并找到两个“#”或一个,第二个将是输入的结尾。

        这样......你可以做你想做的,window.location.hash的变化通常会影响浏览器地址。

        祝你好运!

        【讨论】:

          猜你喜欢
          • 2014-09-01
          • 2017-10-24
          • 2020-12-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-05-15
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多