JSFiddle - React, Tailwind, and code Playground
JavaScript
'use strict';
var Bracket = (function(){
var bracketDict = {
"{": "}",
"(": ")",
"[": "]"
};
var validate = function(str) {
var openingBracket = null;
if ( typeof str !== 'string' || str.length == 1 ) return false;
for ( var i = 0; i < str.length; i++ ) {
var currentBracket = str[i];
if ( openingBracket != null ) {
if ( currentBracket === openingBracket ) {
openingBracket = null;
} else if ( currentBracket === " " ) {
continue;
} else {
return false;
}
} else {
if ( bracketDict[currentBracket] ) {
openingBracket = bracketDict[currentBracket];
} else if ( currentBracket === " " ) {
continue;
} else {
return false;
}
}
}
if ( openingBracket ) {
return false;
} else {
return true;
}
}
return {
validate: validate
};
})();
console.log(Bracket.validate("")); // true
console.log(Bracket.validate("()")); // true
console.log(Bracket.validate("()[]")); // true
console.log(Bracket.validate("()[]{}")); // true
console.log(Bracket.validate("()[]{}")); // true
console.log(Bracket.validate("[ ]")); // true
console.log(Bracket.validate("{{[]()}}")); // false
console.log(Bracket.validate("([)]")); // false
console.log(Bracket.validate("]]")); // false
console.log(Bracket.validate("[")); // false
console.log(Bracket.validate({})); // false