Похоже, это невозможно. И в некотором смысле имеет смысл, что он допускает только нулевые целочисленные значения, поскольку вы передаете переменное число параметров, которые вы не определяете (за исключением их относительного положения в списке параметров).
Вот фрагмент кода, который заменит токены по имени:
public static function replacePlaceholders(input:String,replacementMap:Object):String {
// '${', followed by any char except '}', ended by '}'
return input.replace(/\${([^}]*)}/g,function():String {
return replaceEntities(arguments,replacementMap);
});
}
private static function replaceEntities(regExpArgs:Array,map:Object):String {
var entity:String = String(regExpArgs[0]);
var entityBody:String = String(regExpArgs[1]);
return (map[entityBody]) ? map[entityBody] : entity;
}
Использование:
var test:String = "Hello there ${name}, how is the ${noun} today?";
var replacementMap:Object = {
name : "YOUR_NAME_HERE",
noun : "YOUR_NOUN_HERE"
};
trace(StringUtils.replacePlaceholders(test,replacementMap));
Формат, который я использую для заполнителей, - это $ {placeholdername}, так как он, я думаю, безопаснее. Но если вы хотите удалить знак доллара, измените регулярное выражение соответствующим образом.