String.splitの引数に複数文字を渡した場合[MX 2004] [Edit]

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. 1.野中 文雄(2003年11月13日 11:46)

    日本語版トライアル7.0.1では、修正されませんでした。Macromediaさんには、報告してあるのですけどね...

  2. 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.

その他の記事