Справка по регулярным выражениям AS3? - PullRequest
1 голос
/ 14 сентября 2011

Я работаю над регулярным выражением, и мне нужно извлечь две части выражения, которые импортируются через flashvars.

//sample data similar to what comes in from the flashvars. Note that the spaces are not after the and symbol, they are there because the html strips it.
var sampleText:String = "height1=60& amp;height2=80& amp;height3=95& amp;height4=75& amp;"

var heightRegExp:RegExp = /height\d/g;   //separates out the variables

var matches:Array = sampleText.match(heightRegExp);

Теперь мне нужна помощь, чтобы выделить значения каждой переменной и поместить их в массив ... Например, 60, 80, и т. Д. Я знаю, что смогу написать это регулярное выражение, нопросто не могу понять выражение exec правильно.Любая помощь будет очень признательна!

Ответы [ 3 ]

0 голосов
/ 14 сентября 2011

Ни =, & или;являются специальными символами, поэтому я думаю, что вы можете использовать

=|&

в вызове split, и тогда значения будут в нечетных индексах, а имена стилей height2 будут в четных индексах.

0 голосов
/ 14 сентября 2011

Вы можете использовать URLUtil.stringToObject()

Что-то вроде этого должно работать:

var s:String = "name=Alex&age=21";
var o:Object = URLUtil.stringToObject(s, "&", true);

Однако, если вы только получаете flashvars, вы должны потянутьони из loaderInfo корня.

this.root.loaderInfo.parameters;
0 голосов
/ 14 сентября 2011

извините, что не ответил на вопрос с помощью регулярных выражений.Я бы сделал это:

var keyvalues:Array = sampleText.split("& amp;");
var firstkey:String = keyvalues[0].split("=")[0];
var firstvalue:String = keyvalues[0].split("=")[1];

Поможет ли это тому факту, что он не использует RegEx?

...