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)