4

URL の特定のパターンに一致する正規表現を設定したいと思います。

http://www.domain.com/folder1/folder2/anything/anything/index.html

これは一致し、仕事を成し遂げます:

/^http:\/\/www\.domain\.com\/folder1\/folder2\/.*\/.*\/index\.html([\?#].*)?$/.test(location.href)

ワイルドカードをそれぞれ 1 つのフォルダーに制限する方法がわかりません。では、次のものが一致しないようにするにはどうすればよいですか。

http://www.domain.com/folder1/folder2/folder3/folder4/folder5/index.html

(注:フォルダ5+は私が防ぎたいものです)

ありがとう!

4

5 に答える 5

1

/^http:\/\/www\.domain\.com\/folder1\/folder2\/[^/]*\/[^/]*\/index\.html([\?#].*)?$/

内のスラッシュをエスケープする必要があるかどうかは覚えていません[]。私はそうは思わない。

編集: * の代わりに + を使用してトムのコメントを承認: /^http:\/\/www\.domain\.com\/folder1\/folder2\/[^/]+\/[^/]+\/index\.html([\?#].*)?$/

于 2013-05-23T13:38:36.040 に答える
1

.任意の文字に一致します。

[^/]以外の任意の文字に一致します/

/文字は正規表現リテラルの開始と終了を示すため、次のようにエスケープする必要がある場合があります[^\/]

したがって、次のように置き換えると、必要なことが行わ.*[^\/]*ます。

/^http:\/\/www\.domain\.com\/folder1\/folder2\/[^\/]*\/[^\/]*\/index\.html([\?#].*)?$/.test(location.href)
于 2013-05-23T13:38:57.593 に答える
0

以下を使用できます。

^http:\/\/www\.domain\.com\/folder1\/folder2\/(\w*\/){2}index\.html([\?#].*)?$/.test(location.href)
于 2013-05-23T13:41:26.633 に答える