2011-09-14 20 views
1

私は正規表現に取り組んでいます。私はflashvarsを通してインポートされている式の2つの部分を抽出する必要があります。正規表現ヘルプAS3?

//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式を正しく取得します。どんな助けでも本当にありがとう!

+1

あなたはflashvars文字列のプロパティにアクセスしようとしていますか?その場合は、loaderInfo.parametersオブジェクトを使用するだけです。 – gthmb

+0

いいえ、通常のflashvarsメソッドを使用して個別にパラメータにアクセスできます。その代わりに、文字列を使用して再利用可能なオブジェクトを動的に作成したいと考えています。したがって、渡される名前と値のペアは目的が異なり、異なる配列に解析する必要があります。 – Shelley

答えて

0

申し訳ありませんが正規表現で質問に直接答えることはありません。私はこれを行うでしょう:

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

それは、それが正規表現を使用していないという事実の助けになりますか?

+0

なぜでしょうか:var value:String = this.loaderInfo.properties ['key']? :) – gthmb

+0

私は、彼女が言及する文字列は、キー内の完全な値であると仮定します。そのため「& amp;」 – ghost23

+0

URLにはさまざまなタイプの変数が入ってくるという問題があります。動的な表を作成しているので、最終的には行と列とヘッダーが存在するため、それらを異なる配列に配置できる必要があります。私はすべての値を同じ配列に入れることができないので、どの配列にどの値を入れたいかをまず解析する必要があると考えています。そして、私は決してそこにどれだけ多くあるのか分からないでしょう。 1つのテーブルは2つのヘッダーと4つの行を持ち、別のテーブルは3つの列と1つのヘッダーと5つの行を持つことができます...それは意味がありますか? – Shelley

0

=、&または。特殊文字があるので、私はあなたが分割されたコールに

=|& 

を使用することができ、その後、値が偶数インデックスになり奇数インデックスと身長2スタイル名になると思います。

0

あなたはこのようURLUtil.stringToObject()

何かが動作するはずです使用することができます。

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

あなただけのFlashVarsを取​​得している場合は、あなたが根のloaderInfoからそれらを引く必要があります。

this.root.loaderInfo.parameters;