簡體   English   中英

JavaScript替換一個或另一個

[英]Javascript replace one or another

我正在嘗試在進行一場比賽或另一場比賽時使用replace功能。 作為邏輯,它非常簡單,所以我想有一個非常簡單的實現。

我努力了:

var my_url = document.URL;
var tmpl = "?tmpl=component" || "&tmpl=component"; //This is the tricky part
location.href = my_url.replace(tmpl,"");

...但是似乎無效。 有什么想法嗎?

這不是JavaScript的工作方式, 邏輯OR在這里沒有用。 一種可能的方法是使用regex

location.href = my_url.replace(/[?&]tmpl=component/, "");

在這里, replace方法將替換任何以?開頭的tmpl=component匹配項? &

您可以做兩個替換:

location.href = my_url.replace("?tmpl=component", "").replace("&tmpl=component", "");

或者您可以使用正則表達式:(推薦)

location.href = my_url.replace(/[?&]tmpl=component/, "");

[?&]將匹配一個'?' 或“&”字符。

您將tmpl設置為表達式"?tmpl=component" || "&tmpl=component"; "?tmpl=component" || "&tmpl=component"; ,該值將始終為"?tmpl=component" ,因為它是or語句中的第一個真實值。

您可以通過多種方式使用正則表達式進行此操作:

my_url.replace(/?tmpl=component|&tmpl=component/, "");
my_url.replace(/[?&]tmpl=component/, "");

最好的是:

 var tmpl = (my_url.indexOf("?tmpl=component") > -1)? "?tmpl=component" : "&tmpl=component"; 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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