2016-07-05 11 views
1

Wenn ich wie so eine Zeichenfolge habe:Rück nur Text vor dem letzten Strich in JavaScript-String

var str = 'Arthropoda_Arachnida_Zodariidae_Habronestes_hunti'; 

Wie kann ich nur den ersten Teil der Zeichenfolge vor dem letzten Unterstrich bekommen?

In diesem Fall möchte ich 'Arthropoda_Arachnida_Zodariidae_Habronestes' nur

+0

Sie können eine 'RegExp' verwenden' "Arthropoda_Arachnida_Zodariidae_Habronestes_hunti" .replace (/(.*)_.*$/ g, "$ 1") ' – ftor

Antwort

2

Scheibe und lastIndexOf:

str.slice(0, str.lastIndexOf('_')); 
+0

Beat mich um 26 Sekunden –

+0

yep! : D du bist der Gewinner! : D Fiel frei zum upvote, da ich nicht in -1 sein will;) Ich werde diese Antwort in 8 Minuten akzeptieren –

+0

Ha James. Das passiert mir immer. Tippen Sie eine lange Antwort ein und jemand hat bereits vor mir geantwortet. :) – andrunix

1

Es durch die Verwendung split Verfahren möglich ist:

var s2= 'Arthropoda_Arachnida_Zodariidae_Habronestes_hunti'; 
var s1= s2.substr(0, s2.lastIndexOf('_')); 

oder:

var str = 'Arthropoda_Arachnida_Zodariidae_Habronestes_hunti'; 
str.split('_',4) 
+0

Diese doesn Ich arbeite nicht so, wie das OP es wollte. – gcampbell

1

Kombinieren substr und lastIndexOf sollte Ihnen geben, was Sie wollen.

var str = "Arthropoda_Arachnida_Zodariidae_Habronestes_hunti"; 
var start = str.substr(0, str.lastIndexof("_")); 
// -> "Arthropoda_Arachnida_Zodariidae_Habronestes" 
1

versuchen, dies auch

var str = "Arthropoda_Arachnida_Zodariidae_Habronestes_hunti"; 
alert(str.substring(str.lastIndexOf("_")+1)) //to get Last word 

alert(str.substring(0,str.lastIndexOf("_"))) //to get first part