- 締切済み
条件式に正規表現は使える?
条件式にアドレスを指定して個のページだけ式が実行されるようにしたら、ローカルやページ内リンクを押すとアドレスが変わって実行されなくなります。 今回は 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.*")ではいけないのでしょうか?
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- kawais070_1
- ベストアンサー率55% (515/931)
> フラグiはこれ以降はすべて対象という意味ですか? 大文字小文字を区別しないという意味です。 > \/ の部分はどのような意味なのでしょうか /は囲み文字なのですが、文字列中に/がある場合に囲み文字とされてほしくない時に、\/と表現します。 正規表現は奥が深いので、以下のページをよく読んで勉強してください。 https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Regular_Expressions
- b0a0a
- ベストアンサー率49% (156/313)
正規表現を使うならtestメソッド if(/^https:\/\/we\/c\.html/.test(pageUrl)) でもES2015で追加されたstartsWithメソッドを使うほうがオススメ if(pageUrl.startsWith("https://we/c.html"))
- kawais070_1
- ベストアンサー率55% (515/931)
if (pageUrl.substring(0, (pageUrl + "#").indexOf("#")) === "https://we/c.html") ではいかが? 正規表現が使いたいなら、 if (pageUrl.match(/https:\/\/we\/c.html/i)) でもいいけど。
お礼
条件式にそのままmatchメソッドを記載できるのですね。 \/\/we\/ の \/ の部分はどのような意味なのでしょうか?
補足
フラグiはこれ以降はすべて対象という意味ですか?*ではないのですね
お礼
if(/^https:\/\/we\/c\.html/.test(pageUrl)) 下記の部分がhtml以降すべてという意味になるのでしょうか? /.test(pageUrl) アスタリスクではないのですね。