javascript - 验证或检查在 JavaScript 中对字符串的括号进行编码

标签 javascript string

如何检查 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/

相关文章:

python - 将字符串追加到列表中的字符串

string - android - For 循环中的 R.string.[variable]?

javascript - 尝试了解如何使用 parseFloat 将字符串转换为数字

c - 从ansi C中的字符串中删除空格

javascript - 同时对父子 div 进行 DOM 操作

javascript - 如何让饼图菜单保持在后台?

javascript - 将变量从 app.js 传递到 index.html

javascript - DOM 点被解释为 chrome 中的对象

javascript - getAttribute ("name") 转义 html?

c++ - 是否可以从 C++ 文件的一行中读取特定字符?