SO string replaceaaa

by pleclech forked from SO randomize venue (diff: 71)
♥0 | Line 32 | Modified 2013-05-10 20:14:04 | MIT License
play

ActionScript3 source code

/**
 * Copyright pleclech ( http://wonderfl.net/user/pleclech )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/bOwE
 */

package {
    import flash.events.MouseEvent;
    import flash.utils.setTimeout;
    import com.bit101.components.TextArea;
    
    public class FlashTest extends TextArea {
        public function FlashTest() {
            width=400
            height=400
            setTimeout(doTest, 500)                        
        }

        public function doTest():void {
            // first way explicit loop
            var s:String="staaaack";
            trace("before", s);
            var newStr:String = s.replace(/(st)(a+)(ck)/g, function():String{
              var ret:String=arguments[1]; // here match 'st'
              //arguments[2] match 'aaa..'
              for (var i:int=0, len:int=arguments[2].length; i < len; i++)
                 ret += "O";
              return ret + arguments[3]; // arguments[3] match 'ck'
            });
            trace("after", newStr); // output stOOOOck
            
            // second way array and join
            var s1:String="staaaack staaaaaaaaaaaaack stack paaaack"
            trace("before", s1)
            var after:String = s1.replace(/(st)(a+)(ck)/g, function():String{
                return arguments[1]+(new Array(arguments[2].length+1)).join("O")+arguments[3]
            })
            trace("after", after)
        }

        public function trace(...args):void {
            text=text+args.join(", ")+"\n"
        }
    }
}