- ベストアンサー
Flash 大文字小文字判別方法
- Flashでユーザが入力した値の大文字小文字関係なく判定する方法について解説します。
- 通常、正解値が「ABC」(小文字可)の場合、大文字と小文字を区別せずに判定するためには、if文を使って複数の条件を指定します。
- 例えば、正解値が「ABC」であり、ユーザが「abc」を入力した場合でも正解と判定するには、if文に「||」(または)を使って「atai=="ABC" || atai=="abc"」と指定します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
String クラス( Flash MX 以前はオブジェクト)に、文字列内の文字を大文字に変換する” toUpperCase ”というメソッドがあります。 このメソッドで一旦全て大文字に変換し、変換後の文字列と照合してはいかがでしょう。 スクリプトの一例です。 このスクリプトは、ボタンまたはムービークリップのインスタンスに設定してください。 (↓各行頭に全角のスペースが入っています。コピーする際は、全て半角のスペースかタブに置き換えてください) /*****************************************************/ on(release) { atai = "Abc"; //調べる文字列を全て大文字に変換 upper_str = atai.toUpperCase(); //文字列を照合 if( upper_str == "ABC" ) { trace( "success!!" ); } } /*****************************************************/ 上記のスクリプトでは、変数 atai に入っている文字列は先頭の A だけが大文字で、b と c は小文字です。 今回は小文字も大文字と同様の字と見なして判断するので、atai に入っている文字列を toUpperCase メソッドで大文字に変換します。 この変換の結果は変数 upper_str に入ります。この例ですと、upper_str の内容は "ABC" になります。 こうして変換した upper_str の内容と照合する文字列 "ABC" を比較すると、もとの文字列である atai の内容に小文字が含まれていても、大文字・小文字に関係なく正誤を判断することができます。 ------------------------------------------------------------- 同様の照合処理を繰り返し行う場合は、調べる文字列と照合する文字列の2つを引数として受け取り、照合の結果を返す関数を作成すると便利です。 /*****************************************************/ //////////////////////////////////////////////////// //文字列を大文字・小文字に関係なく照合する関数 // 引 数:sample_str 調べる文字列 // check_str 照合する文字列 // 戻り値:一致する時true、それ以外はfalse //////////////////////////////////////////////////// function Check_String( sample_str , check_str ) { var upper_sample , upper_check; //引数の2つの文字列を全て大文字に変換 upper_sample = sample_str.toUpperCase(); upper_check = check_str.toUpperCase(); //照合文字列と照合 //一致していればtrue、していなければfalseを返す if( upper_sample == upper_check ) { return( true ); } else { return( false ); } } /*****************************************************/ ↑指定された2つの文字列を全て大文字に変換して照合した結果、一致していれば true を、一致していなければ false を返します。 この関数では、照合する文字列(第2引数)も大文字に変換して照合します。 ですから、例えば Check_String( "aBc" , "Abc" ) このように "aBc" と "Abc" を照合する場合、両者を全て大文字で表すとどちらも "ABC" になり一致するので、true を返します。 異なるタイムラインにある関数を呼び出したり、違うタイムラインにある変数を引数として渡す際は、ターゲットパスの誤りにご注意ください。 toUpperCase メソッドでは、大文字が存在しない文字は変換されません。 しかし、全角文字やアルファベット以外の文字が混入した時に正確に判断できないなどの不都合が生じる場合は、restrict プロパティでアルファベットしか入力できないように設定するといった制限を設けるといいでしょう。 ちなみに、大文字に変換する toUpperCase メソッドとは逆に、全て”小文字”に変換する toLowerCase というメソッドもあります。 機会がありましたら使ってみてください。