3

我有一个要在访问特定 URL 路径时运行的函数,但是在该路径的下方还有其他页面,我不希望脚本在其中运行。例如:

website.com/names     **This is the only URL where the script should run**
website.com/names/24/places
website.com/names/648/groups
website.com/names/7340/questions

“/names/”后面的数字的长度范围在 1 和 n 之间,但后三个示例是 URL 可能采用的唯一进一步路径。我只希望脚本在用户位于“website.com/names”页面时运行,而“页面”后面没有任何内容。截至目前,我有一个基于 document.URL.indexOf 的“if”语句的功能,但感觉有点乱:

if(document.URL.indexOf("names") >= 0 && (document.URL.indexOf("places") == -1 && document.URL.indexOf("groups") == -1 && document.URL.indexOf("questions") == -1))

这工作得很好,但我怀疑可能有更好/更清洁的方法来创建“if”语句。有没有办法压缩我当前的行,或者使用不同的代码以更简单的方式做同样的事情,而不会使事情过于复杂?

4

2 回答 2

5

在某些情况下应该使用正则表达式:)

if (/names$/.test(document.URL))

此条件仅在“名称”是 URL 的最后一部分且后面没有任何内容时才通过。表示匹配字符串的$结尾。

于 2012-06-21T18:14:41.430 回答
2

为什么不检查位于document.URL末尾的名称使用

if (document.URL.indexOf("names") == len(document.URL)-5)

(除非 len(document.URL) != 4 不能假设...)。

于 2013-03-27T18:33:50.220 回答