删除 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'));
创建一个接受字符串作为输入的函数,删除括号内的所有内容,然后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'));