2016-07-13 11 views
0

Ich habe eine ZeichenfolgeWie wird ein bestimmter Abschnitt einer Zeichenfolge nach dem letzten Auftreten eines bestimmten Zeichens entfernt? oben Zeichenfolge abzuhacken von den letzten Auftreten von <code>>></code>

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

Nun, ich möchte. Ich meine, ich das Ergebnis Zeichenfolge wollen nun wie folgt

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

sein sollte, ich bin mit verschiedenen jquery/JavaScript-Funktionen wie split(), reverse(), join(), indexOf() den Rest der Zeichenfolge aus dem letzten Auftreten von >> entfernen , so

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

Mit diesem kann ich das gewünschte Ergebnis erhalten. Aber ich nehme an, dass es einen anderen einfacheren Weg geben muss, um dies mit jquery/javascript zu erreichen.

+0

Sie alle danken, alle Antworten sind richtig, aber ich werde eine auswählen, die einfach ist und ich kann –

Antwort

2

Sie können einfach lastIndexOf Methode von String verwenden

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

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

3

Bitte versuchen Sie dies:

"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

leicht verstehen Das '(0, -1)' ist nicht offensichtlich, aber hält schön den Code in einer Zeile. –

0

Javascript lastIndexOf() -Methode. Sie können das letzte Vorkommen damit finden. Dann entfernen Sie den Rest der Saite leicht. Beispiel:

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

können Sie Link überprüfen here

0

Sie können splice es aus:

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

Sie die last von >> bekommen kann und dann von Anfang Zeichenfolge letzte Position String erhalten von Element >> darin:

0

Eine weitere Option: Verwenden Sie pop()

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

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

Sie können uns e Regex in .replace() zum Entfernen von zusätzlichen Teil der Zeichenfolge. Regex wähle den letzten Teil des Strings (>> Branch = Mumbai) und repariere es mit leer. Sie können es sehen, in demo

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

+0

Ja, es ist auch einfach, aber ich bin nicht gut mit Regex, es wäre viel besser, wenn Sie Ihre Regex ein wenig erklären. –