Flash ActionScript 3では、テキスト文字列内のフレーズのすべてのインスタンスを別のフレーズに置き換えるという、単純だと思った何かをしようとしています。ただし、何らかの理由で最初のインスタンスのみが置き換えられ、残りは無視されます。文字列置換関数を約9回実行してソリューションをハッキングし、最終結果にすべての<br />
置き換えられましたが、何が間違っているのか知りたいのですが。前もって感謝します!
私のコード:
var importPostAddress = "123 Fake Street<br />Mytown<br />Mycounty<br />Mycountry<br />PO5 7CD<br /><br />";
var postAddress = importPostAddress.replace("<br />",", ");
postAddress
をトレースするときに期待される結果:
123 Fake Street, Mytown, Mycounty, Mycountry, PO5 7CD, ,
実結果:
123 Fake Street, Mytown<br />Mycounty<br />Mycountry<br />PO5 7CD<br /><br />
これを修正するには、もう少し作業を行う必要があります。
var importPostAddress = "123 Fake Street<br />Mytown<br />Mycounty<br />Mycountry<br />PO5 7CD<br /><br />";
var pattern:RegExp = /<br \/>/g;
var postAddress = importPostAddress.replace(pattern,", ");
/ gフラグを渡すためにRegExp
を使用しています。これにより、置換globalが行われます(見つかった式のすべてのインスタンスを置き換えます)。また、正規表現の制御文字としてバックスラッシュ/
を使用して、<br />
の\
をエスケープする必要がありました。
サムには良い解決策があります。もう1つは次のとおりです。
postAddress = importPostAddress.split("<br />").join(",");