Подумаешь.

Код:
str = 'acacacbbbbddddacacacac';
trim = function (str, symbols) {
symbols = symbols.length ? symbols : ' ';
while (str.indexOf(symbols) == 0) {
str = str.substr(symbols.length);
}
while (str.lastIndexOf(symbols) == str.length-symbols.length) {
str = str.substr(0, str.length-symbols.length);
}
return str;
};
trim2 = function (str, symbol) {
if (lastStr != str) {
lastStr = str;
symbol = symbol ? symbol : ' ';
var array:Array = str.split(symbol);
var sx:Number = 0;
var ex:Number = array.length;
while (array[sx] == "") {
sx++;
}
while (array[ex-1] == "") {
ex--;
}
array.splice(ex);
array.splice(0, sx);
str = array.join(symbol);
outStr = str;
return str;
} else {
return outStr;
}
};
function trims(str:String, symbol:String):String {
symbol = symbol.length ? symbol : ' ';
var array:Array = str.split(symbol);
var sx:Number = 0;
var ex:Number = array.length;
while (array[sx] == "") {
sx++;
}
while (array[ex-1] == "") {
ex--;
}
array.splice(ex);
array.splice(0, sx);
str = array.join(symbol);
return str;
}
////////
t = getTimer();
for (var i = 0; i<10000; i++) {
trim(str, 'ac');
}
trace(trim(str, 'ac'));
trace(getTimer()-t);
t = getTimer();
for (var i = 0; i<10000; i++) {
trim2(str, 'ac');
}
trace(trim2(str, 'ac'));
trace(getTimer()-t);
t = getTimer();
for (var i = 0; i<10000; i++) {
trims(str, 'ac');
}
trace(trims(str, 'ac'));
trace(getTimer()-t);