在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 />
答案 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(",");