Как умножить размер шрифта в 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);

Объяснение:

  1. multiply - принимает параметры "start" и "size" "start" - это ранее подобранная часть тега шрифта. Это необходимо, так как нам нужно знать, что мы находимся в теге шрифта, но нам нужно только заменить значение размера. "размер" - это фактическое значение размера.

  2. 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;
}
Другие вопросы по тегам