• ベストアンサー

javascriptのreplaceの使い方に困っています。

javascriptのreplaceの使い方に困っています。 あるテキストにて勉強中に keyword.replace(/\+/g,"%20") というラインがでてきました。 /gが後方参照であることは理解したのですが /\+/gの /\が何を示すのか、このラインによってどのような処理 を実行するのか、理解できません。 分かる方、どうか回答お願いいたします。

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

/~/ は正規表現オブジェクトです。 gはGlobalのことで、「全て」を意味します。 これが無いと、最初に見つかった1文字しか 処理しません。因みにiというスイッチもあり、 これはIgnoreで、英字の大文字小文字を区別 しないと言う意味です。 ~の部分は正規表現になります。 "+"は「1回以上の繰り返し」を意味するため、 "+"自身を表すにはエスケープ文字の"\"を付加 します。変換結果は以下の通りです。 "ab+cd+ef"→"ab%20cd%20ef" 正規表現の構文は以下を参照してください。 http://msdn.microsoft.com/ja-jp/library/cc392020.aspx

ilnmfay
質問者

お礼

回答ありがとうございました。 /~/,g,+,\+ と一つ一つのポイントに分けて説明していただいたともに、 iの意味など付加価値をつけて回答していただきました。 本当に勉強になります。 丁寧な解説、本当にありがとうございました。

その他の回答 (1)

回答No.1

これURLの変換ですね。  // これは置換文字列をくくる前後の記号です。  \+ 置換文字列内で '+' を明示的に表す文字列です。  g  これは文字列内に出て来たすべてを変換しろと言う意味です。  %20 はスペース' 'です。 ですので、 keyword と言う変数内に格納された文字列に対し、 +が出て来たら全てスペースに置き換えろと言うコマンドになります。

ilnmfay
質問者

お礼

分かりやすい回答をありがとうございました。 replaceの使い方も正規表現の使い方もうまく理解できてなかったのですね。 自分の質問に対して的確な回答を再度ありがとうございました。 勉強になりました。

関連するQ&A