var str = "abc(d(e())f)(gh)ijk()",
re = /\([^()]*\)/,
output = [],
match, parts, last;
while (match = re.exec(str)) {
parts = match[0].split("\uFFFF");
if (parts.length < 2)
last = output.push(match[0]) - 1;
else
output[last] = parts[0] + output[last] + parts[1];
str = str.replace(re, "\uFFFF");
}
Would you like to comment?
Join Diigo for a free account, or sign in if you are already a member.