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';"));