This replaces numbers with the character that appears next to them ('number' times). Is there a a more elegant or shorter way to do this?
var decode = function(str, result) {
var regex = /\d+/,
number = regex.exec(str);
if (number === null) {
return str;
}
var start = number.index,
end = number[0].length + start - 1,
str = str.replace(/\d+/, ""),
repeat = str.charAt(start);
result += str.substring(0, start);
for (var i = 0; i < number[0] - 1; i++) {
result += repeat;
}
result += str.substring(start, str.length);
number = regex.exec(result);
if (number === null) {
return result;
} else {
return decode(result, "");
}
};
var str = "bob2b11a";
console.log(decode(str, ""));
// "bobbbaaaaaaaaaaa"