JSFiddle - React, Tailwind, and code Playground
by Dmitriy Mozgoviy
JavaScript
console.clear()
console.info(1,js("function test(){ alert(); }"));
console.info(2,js("function test(){ alert([]); }"));
console.info(3,js("function test)({ al]ert(); }"));
console.info(4,js("function test(){ alert(]); }"));
console.info(5,js("function test(){ alert(){]; }"));
console.info(6,js("function test()[ aler(t();} }"));
console.info(7,js("fun}ction test(){ alert(); }"));
console.info(8, js("function test(){ alert); }"));
function js(text){
var i,
l=text.length,
char,
last,
stack=[],
index,
bracketsOpen=["(","{","["],
bracketsClose=[")","}","]"];
for(i=0; i<l; i++){
char=text[i];
if(bracketsOpen.indexOf(char)!=-1){
stack.push(last=char);
}else if((index=bracketsClose.indexOf(char))!=-1){
if(last && last==bracketsOpen[index]){
stack.pop();
last=stack[stack.length-1];
}else{
return false;
}
}
}
return !last;
}