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の範囲ですが、後者の3つの例は、URLがたどる可能性のある唯一のパスです。ユーザーが「website.com/names」ページにいるときにのみスクリプトを実行し、「pages」の後に何も表示しないようにします。今のところ、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))

この条件は、「names」が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 に答える