Brace Checker

by Kaeden

HTML

<div id="output"></div>

JavaScript

var checkBraces = function(input) {
    var stack = [];
    input = input.replace(/\s+/g, '');
    while (input.length) {
        var char = input.charAt(0);
        input = input.slice(1);
        if (char == '(' || char == '{' || char == '[') {
            stack.push(char);
        }
        else {
            if (!stack.length) {
                return false;
            }
            
            var pop = stack.pop();
            
            if (char == ')' && pop != '('
                || char == '}' && pop != '{'
                || char == ']' && pop != '[') {
                return false;
            }
        }
    }
                
    return !stack.length;    
};

var runTest = function(input) {
    var str = "Testing '" + input + "': " + checkBraces(input);
    log(str);
};

var log = function(text) {
    $(output).append('<div>' + text + '</div>');
};

runTest("( { [ ]} ) ");
runTest("{      {  { [[      ]    ]     } } }");
runTest("{      {  { [[      ]    ]      } }");
runTest("( )(() ");
runTest("( { [ ]} ) ");