2012-01-28 12 views
1

こんにちは私は自分のシーンにTextFieldを持っています。それは数字だけを持ち、ユーザはボタン(NumPad)をクリックすることによってそれらを入力する。私はそれぞれの5文字を​​ ' - 'で区切りたい。ユーザー必見入力20桁RegExpを使用して各5文字を ' - 'などで区切ってください

私はこのコード私のパターンが正常に動作しているthis site

var rexp:RegExp = new RegExp("/^((\d{0,5})(\d{0,5})(\d{0,5})(\d{0,5}))$/"); 
trace(rexp.test(textEnter.text)); //always false 
var s:String=textEnter.text.replace(rexp, "$2-$3-$4-$5"); 
trace(s);//format is fails 
textEnter.text = s; 

を使用しています。しかし、彼らは私のAS3スクリプトで働いていません。

あなたは私を助け、私が間違っていることを言うことができますか?

答えて

2

AS3で正規表現をインスタンス化するには2通りの方法があります。コンストラクタ・フォームまたは正規表現のリテラル・フォームを使用できます。あなたがする必要はありませんので、この表記では

リテラル形式は、正規表現リテラルは、暗黙の正規表現オブジェクトを作成します。以下は、正常に動作します:

var rexp:RegExp = /^((\d{0,5})(\d{0,5})(\d{0,5})(\d{0,5}))$/; 

コンストラクタのフォーム

あなたが本当にあなたの正規表現をインスタンス化するためにコンストラクタフォームを使用する場合は、あなたがを交換前方区切りは引用符でスラッシュ。また、任意のメタシーケンスに2つ目のバックスラッシュを追加する必要があります。

var rexp:RegExp = new RegExp("^((\\d{0,5})(\\d{0,5})(\\d{0,5})(\\d{0,5}))$"); 

さらに詳しい情報:http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7e92.html

関連する問題