Flashcodersで話題になったString.splitメソッドのバグです。Flash MX 2004で発生します(英語版Trial/Flash Player 7.0r14調べ)。
最後のエレメントがトカゲの尻尾状態?
String.splitメソッドの引数に複数文字からなる区切り文字を渡した場合、返された配列の最後のエレメントが区切り文字の頭と一致すると、そのエレメントがトカゲの尻尾のように切れてしまいます。
再現方法
以下のスクリプトを記述します。
my_str = "abcabbabcdefa";
trace(my_str.split("ab"));
[Output](出力)パネルの結果
,c,b,cdef
// 正しくは以下のようになるべき
,c,b,cdefa
対応策
日本語版の出荷までまだ少し時間があるので、様子をみましょう(水戸黄門モード)。
この記事へのコメント
●1.野中 文雄(2003年11月13日 11:46)
日本語版トライアル7.0.1では、修正されませんでした。Macromediaさんには、報告してあるのですけどね...
●2.野中文雄(2003年12月17日 15:38)
Flash Player 7.0r19で修正されました。
[Flash Player Release Notes]
http://www.macromedia.com/support/documentation/jp/flashplayer/7/releasenotes.html#Fixes
•データ損失またはデータ破損に関する修正された問題点
区切り記号と同じ文字で始まる場合、String.split は最後の要素を削除します。
=====[意味がわかりにくいので原文を併せて掲載]
•Data Loss or Corruption Issues Fixed
String.split will delete the last element if it begins with the same characters as the delimiter.