Javascript 在window.location.href中搜索字符串的更有效方法?

Javascript 在window.location.href中搜索字符串的更有效方法?,javascript,jquery,Javascript,Jquery,是否有更有效的方法搜索window.location.href window.location.href:http://www.example.com/6CATA/folder/file.html 我目前的代码是: var searchWinHref = window.location.href; if(searchWinHref.indexOf("/6CATA/") > -1) { alert('6CATA is in the window.location.href'); } 这

是否有更有效的方法搜索window.location.href

window.location.href:
http://www.example.com/6CATA/folder/file.html

我目前的代码是:

var searchWinHref = window.location.href;
if(searchWinHref.indexOf("/6CATA/") > -1) {
  alert('6CATA is in the window.location.href');
}
这很好,但我正在尝试尽可能地学习优化代码的方法,如果我需要在一个页面上这样做几次,我很想知道是否有更有效的方法

编辑:


为了澄清,我需要偶尔在URL中搜索不同的变体,例如:6CATA和6CATB等。

您可以使用
window.location.pathname
,但您不会从这一小块代码中获得任何速度提升

就性能而言,这看起来不错——特别是如果您只调用了几次

但是,您确定需要在客户端执行此检查吗?这可能更适合在服务器上执行。但这取决于你……


这是一个基准,在这种情况下不需要优化

不,这很好。您可以使用
location.pathname.split('/').contains(“6CDATA”)
,但这是相当等效的。如果你想优化你的代码,并且真正关心这样的微优化,那么如果你需要它几次,就把结果缓存在一个变量中。

过早优化是万恶之源。。。仍然:location.pathname可能是.0000000 1 ms快这可能是最好的方法,但您不必多次执行。如果需要执行多次,请将结果存储在变量中并检查
var index=searchWinHref.indexOf(“/6CATA/”)为什么不获取querystring,在“&”上拆分它,并将结果作为变量存储在数组中?这样一来,查找就完成了一次,所有传入的内容都存储在一个漂亮的快速变量中,以备将来参考。@jammypache-这与querystring无关。他正在检查URL。我们只能访问客户端-不幸的是,这是一个封闭的CMS系统!啊。。。那么在这种情况下,就是这样:)是Fx17+only@mplungjan:我确实希望prototype.js-like
包含数组上的
,但是是的-只是讨厌编写
=-1
:-)>-1或>=0更符合您的喜好?;)尽管有几个答案确实很有帮助——感谢Pieter提供了一个信息丰富的基准测试!)