• ベストアンサー

replaceで文字列結合、もしくはエスケープを

文字列から「| goo」を削除したいです。 直接書くとうまくいくのですが、 変数に入れるとうまくいきません。 どう書けば良いのでしょうか? <うまくいく> var hoge="教えて | goo"; hoge = hoge.replace(/ \| goo/,""); document.write(hoge); <うまくいかない> var osiete="goo"; var hoge="教えて | goo"; hoge = hoge.replace(/ \| osiete/,""); document.write(hoge); <うまくいかない> var osiete="goo"; var hoge="教えて | goo"; hoge = hoge.replace(/ \| +osiete/,""); document.write(hoge);

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

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

replaceの第一引数には正規表現だけで無く文字列も書けるので、 var osiete="goo"; var hoge="教えて | goo"; hoge = hoge.replace(" | "+osiete,""); 正規表現の一部に変数を使いたいと言うことなら、 var osiete="goo"; var hoge="教えて | goo"; hoge = hoge.replace(new RegExp(" \\| "+osiete),""); この場合、正規表現のためのエスケープと、文字列としてのエスケープで \ は2つ書きます。

re999
質問者

お礼

回答ありがとうございました。 両方とも期待通りに動作しました。 大変勉強になりましたー

すると、全ての回答が全文表示されます。

関連するQ&A