• ベストアンサー

RegExpについて教えてください

基本的なことでしたらすみません aaa=key.replace(/[\[]/,"\\\[")],replace(/[\]]/,"\\\]"); var regex= new RegExp("[\\?&]"+aaa+"=([^&#]*)"); これはなにをしているのでしょうか

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4901/10362)
回答No.1

まず、1行目は次のタイプミスですね。 aaa=key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); 逐語的な説明をすると、keyという変数に入っている文字列の、[ を\[ に、] を \] に置換します。 次に、regexというRegExptオブジェクトを作ってその正規表現として、 \または?または& の後にさっきの aaa の文字列、その後に = があって、さらに後に&と#以外の文字が続いたもの を設定しています。 何をするためにそうしているのかは、前後関係によりますので、これだけの情報では不明です。

noname#208026
質問者

補足

質問自体のタイプミスのところ ご回答いただき、ありがとうございます 教えていただいた内容から replace(/[\[]/,"\\\["). replace(/[\]]/,"\\\]"); こんな風にするとよく理解できました まだ確認されていたら、もうひとつ教えてください var regex= new RegExp("[\\?&]"+aaa+"=([^&#]*)"); こちらの "[\\?&]"の部分としては \\として\が2つあるのはなぜでしょうか

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4901/10362)
回答No.2

> \\として\が2つあるのはなぜでしょうか 文字列の中に、\ を書くときは2つ並べます。これは正規表現の話では無くて、JavaScriptの基本文法です。

noname#208026
質問者

お礼

2度もありがとうございます 基本文法、そうでしたか まだはじめたばかりで 現行プログラムを見たり、 入門書を見たりです 教えていただきありがとうございます

関連するQ&A