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