Как умножить размер шрифта в HTML? Реализация ActionScript 3
Пожалуйста, прочтите примеры сравнения ввода и вывода. Defrent имеет размер =[значения]. Как это заменить?
input:
"<font size='30'> Head </font><br></br> <font color='#b5fe01' size='50'>Progress:</font>"
и я хочу умножить все размеры шрифта на 2 и заменить его в исходном вводе.
output:
"<font size='60'> Head </font><br></br> <font color='#b5fe01' size='100'>Progress:</font>"
Спасибо
2 ответа
AS3 регулярное выражение в соответствии с просьбой:
var multiply:Function = function(matched:String, start:String, size:String, index:int, str:String):String
{
return start + (2 * int(size)).toString() + "'";
}
var match:RegExp = /(<font[^>]*size=')(\d+)'/gi;
var src:String = "<font size='30'> Head </font><br/> <font color='#b5fe01' size='50'>Progress:</font>";
var replaced:String = src.replace(match, multiply);
Объяснение:
multiply - принимает параметры "start" и "size" "start" - это ранее подобранная часть тега шрифта. Это необходимо, так как нам нужно знать, что мы находимся в теге шрифта, но нам нужно только заменить значение размера. "размер" - это фактическое значение размера.
RegExp - Захватывает в качестве первой группы "", за которыми следует "size=". Вторая группа - это величина размера. совпадение заканчивается на "" после значения размера, которое не фиксируется. g обозначает "глобальный" и выполняет многократное сопоставление в одной строке, я сопоставляю без учета регистра.
Это не надежное решение, но я думаю, что оно следует основной идее и легко расширяется для более универсального использования.
Мы должны сделать это с процессором HTML/XML...
Используя только чистый Perl:
#!/usr/bin/perl -i
while(<>){
s/(<font\s)(.*?)(>)/$1 . repsize($2) . $3 /ge;
print
}
sub repsize{my $atribs=shift;
return $atribs =~ s/(size=.)(\d+)/ $1 . $2*2/er;
}