ActionScript 3 .replace()仅替换第一个实例

Cra*_*aig 17 string actionscript-3

在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 />",", ");
Run Code Online (Sandbox Code Playgroud)

跟踪时的预期结果postAddress:

123 Fake Street, Mytown, Mycounty, Mycountry, PO5 7CD, , 
Run Code Online (Sandbox Code Playgroud)

实际结果:

123 Fake Street, Mytown<br />Mycounty<br />Mycountry<br />PO5 7CD<br /><br />
Run Code Online (Sandbox Code Playgroud)

Sam*_*aan 29

为了解决这个问题,你需要做更多的工作.

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,", ");
Run Code Online (Sandbox Code Playgroud)

我正在使用a RegExp来传递/ g标志,这使得替换全局(替换所找到的表达式的所有实例).我还必须使用反斜杠来逃避/in ,因为它是正则表达式中的控制字符.<br />\


Tod*_*her 22

Sam有一个很好的解决方案,另一个是:

postAddress = importPostAddress.split("<br />").join(",");
Run Code Online (Sandbox Code Playgroud)