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

我想确保从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 url = window.location;
var imgString = url.replace(/(#mp-[^#\s]+)/,"");

它会删除URL之前的任何内容,从mp到#之前的#.

Regex101 demo

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...