こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

-広告-

回答受付中の質問

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

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

今回は
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.*")ではいけないのでしょうか?

投稿日時 - 2018-05-17 15:45:07

QNo.9499330

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(3)

ANo.3

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

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

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

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

正規表現は奥が深いので、以下のページをよく読んで勉強してください。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Regular_Expressions

投稿日時 - 2018-05-21 10:03:35

ANo.2

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

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

投稿日時 - 2018-05-18 21:13:21

ANo.1

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

ではいかが?

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

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

でもいいけど。

投稿日時 - 2018-05-17 16:09:04

補足

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

投稿日時 - 2018-05-19 20:36:34

お礼

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

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

投稿日時 - 2018-05-19 20:33:56

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-