2010-12-08 10 views

Antwort

24

Die String .slice() method können Sie einen negativen Index verwenden:

var str = "319CDXB".slice(-3); // DXB 

EDIT: ein wenig zu erklären, die .slice() Methode für String ist eine Methode, die sich sehr ähnlich verhält wie ihre Array counterpart.

Der erste Parameter repräsentiert den Startindex, der zweite den Index, der den Haltepunkt darstellt.

Mit beiden Parametern kann ein negativer Index verwendet werden, solange der Bereich sinnvoll ist. Das Weglassen des zweiten Parameters impliziert das Ende des Strings.

Beispiel:http://jsfiddle.net/patrick_dw/N4Z93/

var str = "abcdefg"; 

str.slice(0);  // "abcdefg" 
str.slice(2);  // "cdefg" 
str.slice(2,-2);  // "cde" 
str.slice(-2);  // "fg" 
str.slice(-5,-2); // "cde" 

Die andere nette Sache über .slice() ist, dass es weit verbreitet in allen gängigen Browsern unterstützt wird. Diese zwei Gründe machen es (meiner Meinung nach) zur attraktivsten Option, um einen Abschnitt eines Strings zu erhalten.

+1

Negative Indizes werden in IE nicht unterstützt –

+3

@ Šime Vidas - Ja, das sind sie. Ich benutze '.slice()' nicht '.substr()'. Und übrigens, * Grrrr ... * um mich dazu zu bringen, IE in VMWare zu starten, um das zu überprüfen. ; o) – user113716

+0

Tut mir leid. Ich glaube, ich habe unbewusst festgestellt, dass IE negative Indizes überhaupt nicht mag. –

4

Sie können dies mit regelmäßigen JavaScript:

var str = "319CDXB"; 
var lastThree = str.substr(str.length - 3); 

Wenn Sie es von jQuery über .val sind immer (), benutze das einfach als deine str in dem obigen Code.

1
var str = "319CDXB"; 
str.substr(str.length - 3); // "DXB" 
2

Ganz einfach:

str = "319CDXB" 
last_three = str.substr(-3) 
+2

Dies wird nicht unterstützt in IE http://msdn.microsoft.com/en-us/library/0esxc5wy.aspx –

+0

Nach http://www.w3schools.com/jsref/jsref_substr.asp ist es, aber Ich bin auf einem Mac, also kann ich es nicht testen. –

+1

Laut dieser Seite ist es nicht. Es sagt es genau dort (unter Tipps und Hinweise) –

Verwandte Themen