0

http://www.example.comたとえば、document.location がorに等しい場合は条件を true にしたいのですがhttp://www.example.com/example/anythinghere/、場所が正確に収まらない場合は FALSE を返します。たとえば、http://www.example.com/example/anythinghere/sdjfdfasdfafFALSE を返します。

当然、次のように書きます。

if(document.location == "http://www.example.com/" || 
    document.location == "http://www.example.com/example/*/") 

ただし、古き良きアスタリスクのワイルドカードが機能しないことはわかっています。また、正規表現のアマチュアとして、パターンとの完全な一致を探すための適切な設定を見つけることができません。条件文の後半で何を提案しますか?

4

5 に答える 5

1

以下を使用してマッチングを試みます。

regex = /^http:\/\/www.example.com\/(?:example\/(?:[^\/]+\/)?)?$/ 

具体的には、次のように述べています。

  • 文字列の実際の先頭から開始
  • http://www.example.com/に一致
  • オプションのグループとして一致 (オプションで、トレーニングのため?):
    • 試合例/
    • オプションの追加グループとして一致:
      • スラッシュを含まない 1 文字以上の文字列
      • 単一のスラッシュが続く
  • 続いて文字列の末尾

これを適用すると、すべてのケースがカバーされると思います:

regex.exec("http://www.example.com/example/anythinghere/") // matches
regex.exec("http://www.example.com/example/anythinghere") // doesn't match (no trailing slash)
regex.exec("http://www.example.com/example/anythinghere/qwe") // doesn't match (extra end chars)
regex.exec("http://www.example.com/exam") // doesn't match (no subdir)
regex.exec("http://www.example.com/") // matches
于 2013-10-17T15:16:15.607 に答える
1

次のことを試してください。

 if(document.location == "http://www.example.com/" || 
/^http:\/\/www.example.com\/example\/[^\/]+\/?$/.test(document.location))

http://www.example.com/は、URL が正確に一致するかどうか、または正規表現を使用して一致するかどうかをテストしますhttp://www.example.com/example/ANYTHING_HERE_EXCEPT_FORWARD-SLASH/

正規表現101のデモ

于 2013-10-17T15:16:17.793 に答える
0

のような文字のみを受け入れる正規表現を試してください[a-zA-Z]+。それ以外の場合http://www.example.com/example/;:ª*P=)#/")#/は有効です

http://www.example.com/example/qwerty/uiop/も有効になりますか?で終わりますが/、中間レベルが 2 つあります。

于 2013-10-17T15:09:59.170 に答える
0

先読みベースの正規表現を使用できます。

m = location.href.matches(/www\.example\.com\/(?=example\/)/i);
于 2013-10-17T15:12:15.910 に答える