Я написал небольшую библиотеку javascript, названную balanced , чтобы помочь с этой задачей, вы можете выполнить это, выполнив
balanced.matches({
source: source,
open: '(',
close: ')'
});
, вы даже можете выполнять замены
balanced.replacements({
source: source,
open: '(',
close: ')',
replace: function (source, head, tail) {
return head + source + tail;
}
});
представляет собой более сложный и интерактивный пример JSFiddle