簡體   English   中英

刪除位於特定字符串之間的字母

[英]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-#之前的#

Regex101演示

您可以使用.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM