Я не знаю, как работают регулярные выражения Action Script, но, учитывая, что атрибуты могут появляться в любом месте тега, вы можете заменить <a target="_blank" href=
на каждый <a href=
.Может быть что-то вроде этого:
var pattern:RegExp = /<a\s+href=/g;
var str:String = "<a href=\"http://stackoverflow.com/\">";
str.replace(pattern, "<a target=\"_blank\" href=");
Скопировано из документации Adobe, потому что я не очень разбираюсь в синтаксисе регулярных выражений AS3.
Теперь манипулирование HTML с помощью регулярных выражений обычно очень хрупко, но я думаю,может сойти с рук в этом случае.Во-первых, лучший способ стилизовать ссылку - использовать CSS, а не использовать тег <font>
:
str.replace(pattern, "<a style=\"color:#00d\" target=\"_blank\" href=");
Чтобы окружить ссылку другими тегами, необходимо capture все в <a ...>anchor text</a>
, что в общем случае сопряжено с трудностями, потому что в нем может пойти почти все.
Другой подход заключается в использовании:
var start:RegExp = /<a href=/g;
var end:RegExp = /<\/a>/g;
var str:String = "<a\s+href=\"http://stackoverflow.com/\">";
str.replace(start, "<font color=\"#0000dd\"><a target=\"_blank\" href=");
str.replace(end, "</a></font>");
Как я уже сказал, я никогда не использовал АС, и поэтому возьмите это с крошкой соли.Возможно, вам будет лучше, если у вас есть какой-либо способ манипулирования DOM.
Может показаться, что что-то подобное также работает:
var pattern:RegExp = /<a\s+href=(.+?)<\/a>/mg;
...
str.replace(pattern,
"<font color=\"#0000dd\"><a target=\"_blank\" href=$1</a></font>");