如何检查 JavaScript 中的所有括号...
verify("---(++++)----") -> 1
verify("") -> 1
verify("before ( middle []) after ") -> 1
verify(") (") -> 0
verify("} {") -> 1 //no, this is not a mistake.
verify("<( >)") -> 0
verify("( [ <> () ] <> )") -> 1
verify(" ( [)") -> 0
我有verify(str)
这将返回 1 或 0。我只想检查这个 <>,{},[],()
字符串上的括号,然后任何人都可以为我做这个。谢谢
最佳答案
首先,删除所有不是 ()
的字符, []
, 或 <>
.然后您可以使用递归函数删除未嵌套的平衡对。如果在删除所有平衡对后字符串为空,则该字符串有效。返回 1
如果有效,则返回 0
如果无效。
function verify(input) {
return stripBalancedPairs(stripNonPairs(input)) ? 0 : 1;
}
function stripNonPairs(input) {
return input.replace(/[^()[\]<>]+/g, '');
}
function stripBalancedPairs(input) {
var str = input.replace(/\(\)|\[]|<>/g, ''); // remove (), [], or <>
return str === input ? str : stripBalancedPairs(str);
}
console.log(verify("---(++++)----")); // -> 1
console.log(verify("")); // -> 1
console.log(verify("before ( middle []) after ")); // -> 1
console.log(verify(") (")); // -> 0
console.log(verify("} {")); // -> 1
console.log(verify("<( >)")); // -> 0
console.log(verify("( [ <> () ] <> )")); // -> 1
console.log(verify(" ( [)")); // -> 0
关于javascript - 验证或检查在 JavaScript 中对字符串的括号进行编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38898647/