回答 受付中

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

  • 困ってます
  • 質問No.9499330
  • 閲覧数82
  • ありがとう数2
  • 気になる数0
  • 回答数3

お礼率 42% (6/14)

条件式にアドレスを指定して個のページだけ式が実行されるようにしたら、ローカルやページ内リンクを押すとアドレスが変わって実行されなくなります。

今回は
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

回答 (全3件)

  • 回答No.3

ベストアンサー率 65% (32/49)

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

大文字小文字を区別しないという意味です。

> \/ の部分はどのような意味なのでしょうか

/は囲み文字なのですが、文字列中に/がある場合に囲み文字とされてほしくない時に、\/と表現します。

正規表現は奥が深いので、以下のページをよく読んで勉強してください。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Regular_Expressions
OKWAVE 20th Be MORE ありがとうをカタチに
  • 回答No.2

ベストアンサー率 49% (153/310)

正規表現を使うならtestメソッド
if(/^https:\/\/we\/c\.html/.test(pageUrl))

でもES2015で追加されたstartsWithメソッドを使うほうがオススメ
if(pageUrl.startsWith("https://we/c.html"))
  • 回答No.1

ベストアンサー率 65% (32/49)

if (pageUrl.substring(0, (pageUrl + "#").indexOf("#")) === "https://we/c.html")

ではいかが?

正規表現が使いたいなら、

if (pageUrl.match(/https:\/\/we\/c.html/i))

でもいいけど。
補足コメント
mousugusokoni

お礼率 42% (6/14)

フラグiはこれ以降はすべて対象という意味ですか?*ではないのですね
投稿日時 - 2018-05-19 20:36:34
お礼コメント
mousugusokoni

お礼率 42% (6/14)

条件式にそのままmatchメソッドを記載できるのですね。
\/\/we\/

\/
の部分はどのような意味なのでしょうか?
投稿日時 - 2018-05-19 20:33:56
  • 回答数3
このQ&Aのテーマ
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


より良い社会へ。感謝経済プロジェクト始動

ピックアップ

ページ先頭へ