• 締切済み

条件式に正規表現は使える?

条件式にアドレスを指定して個のページだけ式が実行されるようにしたら、ローカルやページ内リンクを押すとアドレスが変わって実行されなくなります。 今回は we/c.html の時と we/c.html#goto何とか の時に実行してほしいので。 if(pageUrl === "https://we/c.html.*") これではいけないのですか? 難しくてよくわかりません。 そのまま正規表現を記載してはいけないので.test(pageUrl)のよう関数を条件式で実行するのですか? f(pageUrl === "https://we/c.html#js-goto-a") のようにページ内遷移のIDがくっつくだけですが、遷移先のIDはいろいろあるので#以下を正規表現ですべてにするだけで十分です。 if(pageUrl === "https://we/c.html.*")ではいけないのでしょうか?

みんなの回答

回答No.3

> フラグiはこれ以降はすべて対象という意味ですか? 大文字小文字を区別しないという意味です。 > \/ の部分はどのような意味なのでしょうか /は囲み文字なのですが、文字列中に/がある場合に囲み文字とされてほしくない時に、\/と表現します。 正規表現は奥が深いので、以下のページをよく読んで勉強してください。 https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Regular_Expressions

  • b0a0a
  • ベストアンサー率49% (156/313)
回答No.2

正規表現を使うならtestメソッド if(/^https:\/\/we\/c\.html/.test(pageUrl)) でもES2015で追加されたstartsWithメソッドを使うほうがオススメ if(pageUrl.startsWith("https://we/c.html"))

mousugusokoni
質問者

お礼

if(/^https:\/\/we\/c\.html/.test(pageUrl)) 下記の部分がhtml以降すべてという意味になるのでしょうか? /.test(pageUrl) アスタリスクではないのですね。

回答No.1

if (pageUrl.substring(0, (pageUrl + "#").indexOf("#")) === "https://we/c.html") ではいかが? 正規表現が使いたいなら、 if (pageUrl.match(/https:\/\/we\/c.html/i)) でもいいけど。

mousugusokoni
質問者

お礼

条件式にそのままmatchメソッドを記載できるのですね。 \/\/we\/ の \/ の部分はどのような意味なのでしょうか?

mousugusokoni
質問者

補足

フラグiはこれ以降はすべて対象という意味ですか?*ではないのですね