javascript - 删除位于特定字符串之间的字母

标签 javascript uri fragment-identifier

我想确保我从 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);
}

知道怎么做吗?

最佳答案

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

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

关于javascript - 删除位于特定字符串之间的字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34752965/

相关文章:

c# - Uri.EscapeUriString 带方括号

facebook - 添加动态/通配符 FACEBOOK 有效的 OAuth 重定向 URI

javascript - 如何在不刷新页面的情况下使用 JavaScript 从 window.location (URL) 中删除哈希?

javascript - URL 片段标识符 - 简化状态处理 (javascript)

javascript - Axios-POST 添加错误捕获后抛出错误 : ReferenceError: axiosRequest is not defined

javascript - 如何使用 JavaScript 更改主页上的每日图像?

java - 是否有正确的方法来构建 URL?

javascript - 无法在html中创建列表

javascript - 如何使用 Filter "EQ"方法查找搜索字段的结果?

javascript - 如何更改长滚动页面上的 URL?