JSFiddle - React, Tailwind, and code Playground

by Troy Alford

JavaScript

let verify = input => {
  let collapse = value => {
    let result = value
      .replace(/\(\)/g, '')
      .replace(/\[\]/g, '')
      .replace(/\<\>/g, '')
    return result == value ? value : collapse(result)
  }

  let passed = collapse(input.replace(/[^)(\]\[><]/g, '')).length == 0

  return passed ? 1 : 0
}

console.assert(1 == verify("---(++++)----"), 1)
console.assert(1 == verify(""), 2)
console.assert(1 == verify("before ( middle []) after "), 3)
console.assert(0 == verify(") ("), 4)
console.assert(1 == verify("} {"), 5)
console.assert(0 == verify("<(   >)"), 6)
console.assert(1 == verify("(  [  <>  ()  ]  <>  )"), 7)
console.assert(0 == verify("   (      [)"), 8)