如何编辑JavaScript变量?

时间:2009-12-10 14:32:18

标签: javascript variables

说我有一个变量

tab_something

我需要删除tab_位。

在php中,使用str_replace ...

很容易

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

(总是tab_something

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

按照我希望的方式工作,始终贯穿所有现代浏览器(即6 +)?

干杯。

5 个答案:

答案 0 :(得分:2)

滥用源代码重写作为反射的替代是可能的。我不愿说明显的,但是:也许退后一步,看看你是否可以重新设计一下这个项目,这样你就能找到一个更清洁的解决方案?

答案 1 :(得分:2)

有几件事:

  • 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_"

它适用于旧版和现代版浏览器。

答案 2 :(得分:1)

是的,它会。另请注意,您不必在.replace()中使用正则表达式,.replace('tab_', '');就可以了。

答案 3 :(得分:1)

如果document.location.hash始终包含tab_ +您要检索的其他字符串,为什么不利用前缀总是相同的长度?你已经打电话给substring()了,为什么不让这个功能减少几个字符呢?

window.location.hash.substring(5)

感谢CMS指出window.location首选document.location

答案 4 :(得分:0)

是的,这是一个标准的JavaScript函数,它已经足够长,可以涵盖所有现代浏览器,即6及以上版本。应该工作得很好。

如果您知道它始终是前4个字符,您也可以使用子字符串。 tabSelect.substring(4)将在tab_之后的第一个字符开头为您提供所有内容(基于0)。