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 />
Ответы
Ответ 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(",");