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

时间:2012-03-21 14:03:16

标签: 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 />",", ");

跟踪postAddress时的预期结果:

123 Fake Street, Mytown, Mycounty, Mycountry, PO5 7CD, , 

实际结果:

123 Fake Street, Mytown<br />Mycounty<br />Mycountry<br />PO5 7CD<br /><br />

2 个答案:

答案 0 :(得分: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,", ");

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

答案 1 :(得分:22)

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

postAddress = importPostAddress.split("<br />").join(",");