matching closing parentheses.
by Himanshu Joshi
JavaScript
// Answered by Larry Battle <bateru.com/news>
// Question from: http://codereview.stackexchange.com/questions/14532/checking-for-balanced-brackets-in-javascript
var haveSameLength = function(str, a, b) {
return (str.match(a) || []).length === (str.match(b) || []).length;
};
var isBalanced = function(str) {
var arr = [
[/\(/gm, /\)/gm],
[/\{/gm, /\}/gm],
[/\[/gm, /\]/gm]
],
i = arr.length,
isClean = true;
while (i-- && isClean) {
isClean = haveSameLength(str, arr[i][0], arr[i][1]);
}
return isClean;
};
console.log(isBalanced("var a = function(){return 'b';}"));
console.log(isBalanced("var a = function(){return 'b';"));
console.log(isBalanced("/*Comment*/var a = function(){ \n // coment again \n return 'b';"));
console.log(isBalanced("var a = function(){return 'b';"));