Skip to content

Flash常见问题记录

frankwinter edited this page Jul 27, 2017 · 18 revisions

Flash常见问题记录:

function replaceString(str:String, ...args):String{
	var r:RegExp, provider:Object;
	if(args.length == 1 && typeof(args[0]) == "object" && !(args[0] is Array)){
		r = /\((?i:[a-z]++)\) | \{(?i:[a-z]++)\} | \[(?i:[a-z]++)\]/gx;
		provider = args[0] as Object;
	}
	else{
		r = /\(\d+\) | \{\d+\} | \[\d+\]/gx;
		if(args[0] is Array){
			provider = args[0] as Array;
		}
		else{
			provider = args;
		}
	}
	str = str.replace(r, function(match:String, ...t):String{
		trace(t[0]); //这里注意,返回的是9,21
		return provider[match.slice(1, match.length - 1)];
	});
	return str;
}
var str:String = "这可能{0}是一个{1}";
var bytes:ByteArray = new ByteArray();
bytes.writeMultiByte("这可能", "utf-8");
bytes.position = 0;
trace(bytes.length); //9,并不是3
trace(replaceString(str, "就", "bug")); //这可能就是一个bug
Clone this wiki locally