在Javascript中删除括号之间的内容



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

我必须创建一个函数,删除括号之间的所有内容,并返回不包含括号的字符串。

例如,输入12(3(45))67(8)912679.

如果括号数不正确,返回一个空字符串。

这是我的方法:

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'));

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

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

在末尾,如果括号计数不为零,您还可以告诉它按照请求返回空字符串..

如. .

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'));

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

相关内容

  • 没有找到相关文章