使用 jQuery 从字符串中删除最后一个文本括号

问题描述 投票:0回答:1

我正在尝试使用 jQuery 从字符串中的最后一个括号中删除文本,我可以从字符串中删除括号,但代码会删除每个括号,而我只需要删除最后一个括号。例如,我有以下字符串“这是一个(测试)字符串(其中)最后一个括号(需要)被(删除)”我编写了下面的代码来删除括号内的括号和文本。

$('p').text(function(_, text) {
    return text.replace(/\(.*?\)/g, '');
});

我尝试的代码删除了字符串中的所有括号,我需要删除字符串中的最后一个括号。

javascript jquery jquery-ui
1个回答
0
投票

要仅从字符串中删除最后一个括号及其内容,可以使用以下方法之一:

  1. 使用带有负向前瞻的正则表达式:

     $('p').text(function(_, text) {
     return text.replace(/\([^()]*\)(?!.*\([^()]*\))/g, '');
     });
    
  2. 最后索引

     $('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;
     });
    
© www.soinside.com 2019 - 2024. All rights reserved.