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

时间:2016-07-13 10:22:06

标签: javascript jquery string split

我有一个字符串

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

现在,我想从最后一次出现的>>中删除上面的字符串。我的意思是,我希望结果字符串应该像这样

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

现在,我正在使用各种jquery / javascript函数,例如split()reverse()join()indexOf()来删除最后一次出现的字符串的其余部分{ {1}},像这样

>>

使用此功能,我可以获得所需的结果。但我认为必须有一些比这更简单的方法来实现这个使用jquery / javascript。

7 个答案:

答案 0 :(得分:3)

请试试这个:

"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(" >> "));

答案 1 :(得分:2)

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

var input = "Opportunity >> Source = Email >> Status = New >> Branch = Mumbai";

console.log( input.substring(0, input.lastIndexOf( ">>" )) )

答案 2 :(得分:1)

您可以获取>>的lastindex,然后从字符串的开头到元素>>的最后位置获取子字符串:

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

答案 3 :(得分:0)

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

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

您可以查看链接here

答案 4 :(得分:0)

你可以splice关闭它:

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

答案 5 :(得分:0)

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

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

var arr = src.split(">>");
arr.pop();
var s = arr.join(">>");

答案 6 :(得分:0)

您可以在.replace()中使用正则表达式来删除字符串的额外部分。正则表达式选择字符串的最后一部分(>> Branch = Mumbai)并将其重新排列为空。您可以在demo

中查看



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