我正在尝试使用 jQuery 从字符串中的最后一个括号中删除文本,我可以从字符串中删除括号,但代码会删除每个括号,而我只需要删除最后一个括号。例如,我有以下字符串“这是一个(测试)字符串(其中)最后一个括号(需要)被(删除)”我编写了下面的代码来删除括号内的括号和文本。
$('p').text(function(_, text) {
return text.replace(/\(.*?\)/g, '');
});
我尝试的代码删除了字符串中的所有括号,我需要删除字符串中的最后一个括号。
要仅从字符串中删除最后一个括号及其内容,可以使用以下方法之一:
使用带有负向前瞻的正则表达式:
$('p').text(function(_, text) {
return text.replace(/\([^()]*\)(?!.*\([^()]*\))/g, '');
});
最后索引
$('p').text(function(_, text) {
const start = text.lastIndexOf('(');
const end = text.lastIndexOf(')');
if (start !== -1 && end !== -1) {
return text.slice(0, start) + text.slice(end + 1);
}
return text;
});