- ベストアンサー
RegExpについて教えてください
基本的なことでしたらすみません aaa=key.replace(/[\[]/,"\\\[")],replace(/[\]]/,"\\\]"); var regex= new RegExp("[\\?&]"+aaa+"=([^&#]*)"); これはなにをしているのでしょうか
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
まず、1行目は次のタイプミスですね。 aaa=key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); 逐語的な説明をすると、keyという変数に入っている文字列の、[ を\[ に、] を \] に置換します。 次に、regexというRegExptオブジェクトを作ってその正規表現として、 \または?または& の後にさっきの aaa の文字列、その後に = があって、さらに後に&と#以外の文字が続いたもの を設定しています。 何をするためにそうしているのかは、前後関係によりますので、これだけの情報では不明です。
その他の回答 (1)
- notnot
- ベストアンサー率47% (4901/10362)
回答No.2
> \\として\が2つあるのはなぜでしょうか 文字列の中に、\ を書くときは2つ並べます。これは正規表現の話では無くて、JavaScriptの基本文法です。
質問者
お礼
2度もありがとうございます 基本文法、そうでしたか まだはじめたばかりで 現行プログラムを見たり、 入門書を見たりです 教えていただきありがとうございます
補足
質問自体のタイプミスのところ ご回答いただき、ありがとうございます 教えていただいた内容から replace(/[\[]/,"\\\["). replace(/[\]]/,"\\\]"); こんな風にするとよく理解できました まだ確認されていたら、もうひとつ教えてください var regex= new RegExp("[\\?&]"+aaa+"=([^&#]*)"); こちらの "[\\?&]"の部分としては \\として\が2つあるのはなぜでしょうか