如何在最后一次出现特定字符后删除字符串的特定部分

How to remove a specific section of a string after the last occurrence of a specific character?

本文关键字:删除 字符串 定部 字符 最后一次      更新时间:2023-09-26

我有一个字符串

"Opportunity >> Source = Email >> Status = New >> Branch = Mumbai"

现在,我想从上次出现的>>中砍掉上面的字符串。我的意思是,我希望结果字符串应该是这样的

"Opportunity >> Source = Email >> Status = New"

现在,我正在使用各种jquery/javascript函数,如split()reverse()join()indexOf()从最后一次出现的>>中删除字符串的其余部分,如下所示

var test = "Opportunity >> Source = Email >> Status = New >> Branch = Mumbai";
var count = test.split("").reverse().join("").indexOf('>>');
var string = test.substring(0, test.length - count-2);

使用这个,我能够得到想要的结果。但是我认为必须有其他更简单的方法可以使用jquery/javascript来实现这一点。

请尝试以下操作:

"Opportunity >> Source = Email >> Status = New >> Branch = Mumbai".split(" >> ").slice(0, -1).join(" >> ")

var str = "Opportunity >> Source = Email >> Status = New >> Branch = Mumbai";
console.log(str.split(" >> ").slice(0, -1).join(" >> "));

你可以简单地使用 String 的 lastIndexOf 方法

var input = "Opportunity >> Source = Email >> Status = New >> Branch = Mumbai";
console.log( input.substring(0, input.lastIndexOf( ">>" )) )

您可以获取 >> 的最后一个索引,然后获取从字符串开头到其中元素>>最后一个位置的子字符串:

var str = "Opportunity >> Source = Email >> Status = New >> Branch = Mumbai"
 var lastindex = str.lastIndexOf(">>");
 if (lastindex  != -1){
    alert(str.substring(0, lastindex-1 )); 
 }

Javascript 有 lastIndexOf() 方法。你可以用它找到最后一次出现。然后轻松删除字符串的其余部分。例:

var test = "Opportunity >> Source = Email >> Status = New >> Branch = Mumbai";
var finIndex = test.lastIndexOf('>>');
var string = test.substring(0, finIndex);

您可以在此处查看链接

你可以把它splice掉:

var arr = test.split(">>");
arr = arr.splice(arr.length - 1, 1);
string = test.join(">>");

还有一个选择:使用pop()

var src = "Opportunity >> Source = Email >> Status = New >> Branch = Mumbai"
var arr = src.split(">>");
arr.pop();
var s = arr.join(">>");

您可以在.replace()中使用正则表达式来删除字符串的多余部分。正则表达式选择字符串的最后一部分(>> Branch = Mumbai)并用空重新放置它。您可以在演示中看到它

var text = "Opportunity >> Source = Email >> Status = New >> Branch = Mumbai";
console.log(text.replace(/>>[^>]+$/g, ""));