[英]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.