Подтвердить что ты не робот

ActionScript 3.replace() заменяет только первый экземпляр

В 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 />
4b9b3361

Ответ 1

Чтобы исправить это, вам нужно сделать немного больше работы.

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 />, используя обратную косую черту \, как ее управляющий символ в регулярных выражениях.

Ответ 2

У Сэма хорошее решение, другое:

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