[英]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.location
比document.location
更可取。
是的,這是一個標准的JavaScript函數,已經使用了很長時間,足以覆蓋所有現代瀏覽器(即6或更高版本)。 應該工作正常。
如果您知道子字符串將始終是前4個字符,則也可以使用子字符串。 tabSelect.substring(4)
將為您提供一切,它們從tab_
之后的第一個字符開始(從0開始)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.