删除 Javascript 中括号内的内容

Remove contents between parentheses in Javascript

创建一个接受字符串作为输入的函数,删除括号内的所有内容,然后return修改后的字符串。如果左右括号的数量不匹配,return空字符串

我必须创建一个函数来删除括号之间的所有内容,return 是没有它的字符串。

例如,此输入 12(3(45))67(8)9 将 return 此输出 12679.

如果括号数不正确return空字符串。

这是我的方法:

function removeContent(str) {
  let leftP = 0, rightP = 0;
  // wrong number of parentheses scenario
  for( let i = 0; i < str.length; i++) {
    if(str[i] === '(' ) leftP++;
    if(str[i] === ')' ) rightP++;
  }
  if( leftP !== rightP) return "";
  
  // remove the content otherwise
}

console.log(removeContent('12(3(45))67(8)9'));

不知道如何进行配对括号之间的组合和删除内容。

用正则表达式查找替换 /\(+[\d\(]*\)+/g

一个简单的方法是跟踪括号计数,然后仅当括号计数等于 0 时才输出字母。

最后,如果括号计数不为零,您也可以根据要求告诉它 return 空字符串..

例如..

function removeContent(string) {
  let bracketCount = 0;
  let output = '';
  for (const letter of string) {
    if (letter === '(') bracketCount += 1
    else if (letter === ')') bracketCount -= 1
    else if (bracketCount === 0) output += letter;
  }
  return bracketCount === 0 ? output : '';
}


console.log(removeContent('12(3(45))67(8)9'));
console.log(removeContent('12(345))67(8)9'));
console.log(removeContent('1(2)(3)45(7)8(((9)))77'));