[英]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 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
。
使用正則表達式:
var url = window.location;
var imgString = url.replace(/(#mp-[^#\s]+)/, "");
它會刪除URL之前的任何內容,從mp-
到#
之前的#
。
您可以使用.replace
將空字符串替換為匹配的正則表達式(“#mp-”后跟0或更多非#
字符)。 如果可能有多個要刪除的段,只需在正則表達式中添加g
標志即可。
url = url.replace(/#mp-[^#]*/, '');
window.location具有hash屬性,因此... window.location.hash
最原始的方式是申報
var char_start, char_end
並找到兩個“#”或一個,第二個將是輸入結束。
有了...你可以做你想要的,window.location.hash的更改通常會影響瀏覽器的地址。
祝好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.