JSFiddle - React, Tailwind, and code Playground
JavaScript
function isBalanced(str, condition) {
let open = [];
let close = [];
let cond = condition.split("");
for (let i = 0; i < str.length; i++) {
let character = str[i];
if (character === "(" || character === "[") {
open.push(character);
} else if (character === ")" || character === "]") {
close.push(character);
}
}
if (open.length === close.length) {
return true;
}
return false;
}
isBalanced("(Sensei say(s) (0) yes!)", "()"); // true
isBalanced("(Sensei say(s) (0) yes!)", "()"); // true
isBalanced("(Sensei says yes)", "()"); // true
isBalanced("(Sensei says yes) some text(sfdsf) gg (sdss)", "()"); // true
isBalanced("(Sensei says( no)", "()"); // false
isBalanced("(Sensei saysno) (sd) (sdfsf", "()"); // false
isBalanced("(Sensei saysno) (sdsd)fsf)", "()"); // false
isBalanced("sd [3233] dsd(Sensei says yes) other text[sdsf] sdfsf [] xx (sdf)", "()[]"); // true
isBalanced("(Sensei [say (sdf) [ssf] ] yes!)", "()[]"); // true
isBalanced("(Sensei [says] yes!)", "()[]"); // true
isBalanced("(Sensei [says) no!]", "()[]"); // false
isBalanced("[Sensei [(says) no!]", "()[]"); // false