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.