- ベストアンサー
replace()での文字列置換について
お世話になります。 replace()で文字列置換をするとき、 sentAry=new Array("aabb()c()bbc","・・・", sent=sentAry[0]; で、 sent=sent.replace("()","( )") と、すると、 sent="aabb( )c()bbc;" と、なることを期待したのですが、 sent="aabb( )c( )bbc;" と、なってしまいました。 つまり全ての()が( )に変換されてしまいました。 マッチングした全ての文字列か、マッチングした最初の一つだけか が、グローバル検索のg属性と、いうものにより異なるというような記載を見つけましたが、 だからと、いってどのようにすればよいのか 一向にわかりません。 どなたか、わかる方見えましたら、よろしくご教示お願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
質問文でやられているように、実行した場合、一つめだけが変換されました。おそらく、質問文で書かれているのとは、別の方法を使われているのではないかと思います。が なんでしたら、以下の文を試してみてください。 sent=sent.replace(/\(\)/,"( )"); ----------------------------------------------- sent=sent.replace(/\(\)/g,"( )"); のようにすると、全部を置き換えます。
その他の回答 (1)
- fire--
- ベストアンサー率49% (146/293)
http://www.tohoho-web.com/js/regexp.htmによると、 正規表現をperl風に書けるようです。 試してないですが、たぶん以下で動くと思います。 sent=sent.replace(/()/,"( )");
お礼
fire--さん、ありがとうございます。 できました。
お礼
BLUEPIXYさん、ありがとうございます。 ご指摘の通りです。 gの使い方もわかりました。 どうもありがとうございました。