締切済み

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

  • 困ってます
  • 質問No.9499330
  • 閲覧数118
  • ありがとう数4
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 52% (43/82)

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

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

  • 回答No.3

ベストアンサー率 62% (40/64)

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

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

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

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

正規表現は奥が深いので、以下のページをよく読んで勉強してください。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Regular_Expressions
感謝経済、優待交換9月20日スタート
  • 回答No.2

ベストアンサー率 49% (156/313)

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

でもES2015で追加されたstartsWithメソッドを使うほうがオススメ
if(pageUrl.startsWith("https://we/c.html"))
お礼コメント
mousugusokoni

お礼率 52% (43/82)

if(/^https:\/\/we\/c\.html/.test(pageUrl))

下記の部分がhtml以降すべてという意味になるのでしょうか?
/.test(pageUrl)

アスタリスクではないのですね。
投稿日時 - 2018-06-10 14:32:54
  • 回答No.1

ベストアンサー率 62% (40/64)

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

ではいかが?

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

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

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

お礼率 52% (43/82)

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

お礼率 52% (43/82)

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

\/
の部分はどのような意味なのでしょうか?
投稿日時 - 2018-05-19 20:33:56
AIエージェント「あい」

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

関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

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

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

特集


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

ピックアップ

ページ先頭へ