2016-12-04 4 views
1

Ich versuche alles nach bestimmten Zeichen in einer Zeichenfolge zu bekommen.javascript: Holen Sie alles nach bestimmten Zeichen aus einer Zeichenfolge?

Aber ich habe keine Ahnung, warum meine, wenn ich alert(); Das Ergebnis ist ein Komma vor der Zeichenfolge!

Hier ist ein funktionierendes FIDDLE

Und dies ist mein Code:

var url = "mycool://?string=mysite.com/username_here80"; 
var urlsplit = url.split("mycool://?string="); 

alert(urlsplit); 

jede mögliche Hilfe würde geschätzt.

+0

String # Split gibt genau ein 'Array' zurück (ja, ein echtes ins tance of 'Array', also eine Möglichkeit, das letzte Element zu erhalten, ist die Verwendung des' last' Getters, so dass 'alert' dieses Array von Splits anreiht. – Hydro

+0

Do 'url.split (" = "). Pop()' stattdessen. – trincot

Antwort

1

Split trennt die Zeichenfolge in durch Trennzeichen getrennt Token. Es gibt immer ein Array zurück, das länger ist als die Anzahl der Token in der Zeichenfolge. Wenn es ein Trennzeichen gibt, gibt es zwei Zeichen — eins nach links und eins nach rechts. In Ihrem Fall ist das Token auf der linken Seite der leere String, so dass split() das Array ["", "mysite.com/username_here80"] zurückgibt. Versuchen

var urlsplit = url.split("mycool://?string=")[1]; // <= Note the [1]! 

unter Verwendung der zweiten Zeichenfolge in dem Array abgerufen werden (was Sie interessiert sind).

Der Grund, warum Sie ein Komma erhalten, ist, dass das Konvertieren eines Arrays in einen String (was tut) in einer durch Kommas getrennten Liste der in Strings konvertierten Array-Elemente resultiert.

1

Das Objekt split function des Objekts string gibt ein Array von Elementen basierend auf dem Splitter zurück. In Ihrem Fall - die zurück 2 Elemente:

var url = "http://DOMAIN.com/username_here801"; 
 
var urlsplit = url.split("//"); 
 

 
console.log(urlsplit);

Das Komma Sie sehen, ist nur die Darstellung des Array als String.

Wenn Sie suchen, alles zu bekommen nach ein Teil Sie besser verwenden, um die indexOf und slice:

var url = "http://DOMAIN.com/username_here801"; 
 
var splitter = '//' 
 
var indexOf = url.indexOf(splitter); 
 

 
console.log(url.slice(indexOf+splitter.length));

0

ich ein einfaches ersetzen verwenden würde ..

var s = "mycool://?string=mysite.com/username_here80"; 
var ss = s.replace("mycool://?string=", ""); 
alert(ss); 
Verwandte Themen