🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

4回答

658閲覧

JavaScript  パス指定の/と\の使い方

NakaShun_1129

総合スコア20

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2019/12/02 04:49

編集2019/12/02 05:12

現在グループ機能つきのチャットアプリを作成しております。

if (window.location.href.match(//groups/\d+/messages/)){

上記のコードは
自動更新の際に今いるページのリンクが/groups/グループID/messagesのパスとマッチすれば以下を実行。といったコードなのですが
//groups/\d+/messages/
この部分の記述が調べても理解できません。(なんて調べればいいかもわからない状態です)

d+が何桁かの半角数字を意味することは理解できたのですが、
/と\の使い方がいまいち分かりません。

初歩的な質問でお恥ずかしいですがどなたか解説お願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2019/12/02 05:15

「JavaScript 正規表現 エスケープ」で調べられると思います。 こういうのは場当たり的に調べるより文法を確認した方が早いです。
guest

回答4

0

スラッシュが正規表現の区切りとなってしまうので、\エスケープしています。つまり、/でスラッシュにヒットします。

投稿2019/12/02 04:52

maisumakun

総合スコア145963

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2019/12/02 04:53

「何桁かの半角数字」にヒットするのも、「d+」ではなく「\d+」です。
NakaShun_1129

2019/12/06 04:26

回答ありがとうございました。 認識の違いも指摘もしていただき感謝しています! 今後も何かありましたらよろしくお願いいたします。
guest

0

ベストアンサー

正規表現の作成にありますが、JavaScriptには2種類の正規表現の作成方法があります。
正規表現パターン/groups/\d+/messagesを正規表現リテラルで作成する場合はスラッシュ(/)で囲まなければならないため、パターン中の/はエスケープして/と表さなければなりません。そのため//groups/\d+/messages/となります。
一方、RegExpのコンストラクタを用いて作成する場合は/のエスケープは要らないのでnew RegExp('/groups/\d+/messages')となります。(今度は文字列リテラルの関係で\にエスケープが必要となっていることに注意してください)

投稿2019/12/02 05:13

shinji709

総合スコア805

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

NakaShun_1129

2019/12/06 04:24

とても分かりやすい説明ありがとうございました! 周りにも同じところで止まっている仲間にもこちらの回答を見せたところ理解していただけました! 今後も何かありましたらよろしくお願いいたします。
guest

0

バックスラッシュ(\)はエスケープシーケンスといい、「+文字」と入力することによって特別な意味を持たせられます。
この場合、「+/」と入力することによって、スラッシュ(/)はプログラム的な意味を持つものではなく、パスを表現するための文字であると意味させています。
また、最初と最後のスラッシュは、正規表現の始まりと終わりを表すスラッシュですので、エスケープシーケンスは付けません。

エスケープシーケンスを用いますと、キーボードから直接表現できない文字なども表現できるようになりますので、ぜひ調べてみてください。

投稿2019/12/02 05:02

Hayate-Nakamura

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ご質問者のような文字列は「正規表現」と言います。
ここのサイトがわかりやすいかと思います。

投稿2019/12/02 04:54

kyoya0819

総合スコア10429

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問