簡體   English   中英

如何編輯JavaScript變量?

[英]How can I edit a JavaScript variable?

說我有一個變量

tab_something

我需要刪除tab_位。

在php中,使用str_replace很容易...

tabSelect = document.location.hash.substr(1,document.location.hash.length);

(始終為tab_something

document.write(tabSelect.replace(/tab_/i, ""));

在所有現代瀏覽器(ie6 +)中始終如一地以我希望的方式工作?

干杯。

濫用源代碼重寫來代替反射是可能的。 我不願意表述顯而易見的內容,但是:也許退后一步,看看是否可以重新調整項目的形狀,以便可以提出更清潔的解決方案?

有兩件事:

  • document.location將在某些時候棄用document.URL ,請考慮使用window.location
  • 還考慮使用String.substring ,因為它是ECMA-262規范的一部分。

var tabSelect = window.location.hash.substring(1); // remove "#"
tabSelect = tabSelect.replace(/tab_/i, "");        // remove "tab_"

它可以在舊的和現代的瀏覽器上運行。

是的,它會的。 還要注意,您不必在.replace() .replace('tab_', '');使用正則表達式.replace('tab_', ''); 會很好的。

如果document.location.hash始終包含tab_ +您希望檢索的其他字符串,為什么不利用前綴始終保持相同的長度呢? 您已經有調用substring()原因,為什么不讓此函數切入更多的字符呢?

window.location.hash.substring(5)

感謝CMS指出window.locationdocument.location更可取。

是的,這是一個標准的JavaScript函數,已經使用了很長時間,足以覆蓋所有現代瀏覽器(即6或更高版本)。 應該工作正常。

如果您知道子字符串將始終是前4個字符,則也可以使用子字符串。 tabSelect.substring(4)將為您提供一切,它們從tab_之后的第一個字符開始(從0開始)。

暫無
暫無

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

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