• ベストアンサー

replace()での文字列置換について

お世話になります。 replace()で文字列置換をするとき、 sentAry=new Array("aabb()c()bbc","・・・", sent=sentAry[0]; で、 sent=sent.replace("()","(   )") と、すると、 sent="aabb(   )c()bbc;" と、なることを期待したのですが、 sent="aabb(   )c(   )bbc;" と、なってしまいました。 つまり全ての()が(   )に変換されてしまいました。 マッチングした全ての文字列か、マッチングした最初の一つだけか が、グローバル検索のg属性と、いうものにより異なるというような記載を見つけましたが、 だからと、いってどのようにすればよいのか 一向にわかりません。 どなたか、わかる方見えましたら、よろしくご教示お願いします。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

質問文でやられているように、実行した場合、一つめだけが変換されました。おそらく、質問文で書かれているのとは、別の方法を使われているのではないかと思います。が なんでしたら、以下の文を試してみてください。 sent=sent.replace(/\(\)/,"(   )"); ----------------------------------------------- sent=sent.replace(/\(\)/g,"(   )"); のようにすると、全部を置き換えます。

rqg2010
質問者

お礼

BLUEPIXYさん、ありがとうございます。 ご指摘の通りです。 gの使い方もわかりました。 どうもありがとうございました。

その他の回答 (1)

  • fire--
  • ベストアンサー率49% (146/293)
回答No.1

http://www.tohoho-web.com/js/regexp.htmによると、 正規表現をperl風に書けるようです。 試してないですが、たぶん以下で動くと思います。 sent=sent.replace(/()/,"(   )");

rqg2010
質問者

お礼

fire--さん、ありがとうございます。 できました。

関連するQ&A