删除位于特定字符串之间的字母
Removing a letters located between to specific string
我想确保从 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-
到 #
之前的字符的所有内容。
是这样的吗?这使用正则表达式来过滤不需要的字符串。
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
.
您可以使用 .replace
将正则表达式匹配(“#mp-”后跟 0 个或多个非 #
字符)替换为空字符串。如果可能有多个要删除的段,只需将 g
标志添加到正则表达式即可。
url = url.replace(/#mp-[^#]*/, '');
window.location 有散列 属性 所以... window.location.hash
最原始的方式是声明
var char_start, char_end
并找到两个“#”或一个和第二个将是输入的结尾。
有了那个...你可以做你想做的,window.location.hash 的变化通常会影响浏览器地址。
祝你好运!
我想确保从 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-
到 #
之前的字符的所有内容。
是这样的吗?这使用正则表达式来过滤不需要的字符串。
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
.
您可以使用 .replace
将正则表达式匹配(“#mp-”后跟 0 个或多个非 #
字符)替换为空字符串。如果可能有多个要删除的段,只需将 g
标志添加到正则表达式即可。
url = url.replace(/#mp-[^#]*/, '');
window.location 有散列 属性 所以... window.location.hash
最原始的方式是声明
var char_start, char_end
并找到两个“#”或一个和第二个将是输入的结尾。
有了那个...你可以做你想做的,window.location.hash 的变化通常会影响浏览器地址。
祝你好运!