web-dev-qa-db-de.com

Entfernen Sie das führende Komma aus einer Zeichenfolge

Ich habe folgende Zeichenfolge:

",'first string','more','even more'"

Ich möchte dieses in ein Array umwandeln, aber offensichtlich ist dies aufgrund des ersten Kommas nicht gültig. Wie kann ich das erste Komma aus meiner Zeichenfolge entfernen und es zu einem gültigen Array machen?

Ich möchte mit so etwas enden:

myArray  = ['first string','more','even more']
180
Mircea

So entfernen Sie das erste Zeichen, das Sie verwenden würden:

var myOriginalString = ",'first string','more','even more'"; 
var myString = myOriginalString.substring(1);

Ich bin mir nicht sicher, ob dies das Ergebnis sein wird, nach dem Sie suchen, da Sie es immer noch teilen müssen, um ein Array damit zu erstellen. Vielleicht so etwas wie:

var myString = myOriginalString.substring(1);
var myArray = myString.split(',');

Denken Sie daran, dass das Zeichen 'ein Teil jeder Zeichenfolge im Split hier ist.

305
Joel Etherton

In diesem speziellen Fall (es gibt immer ein einzelnes Zeichen am Start, das Sie entfernen möchten), möchten Sie:

str.substring(1)

Wenn Sie jedoch feststellen möchten, ob das Komma vorhanden ist, und es entfernen, wenn es ist, dann etwas wie:

if (str[0] == ',') { 
  str = str.substring(1);
}
89
thomasrutter
var s = ",'first string','more','even more'";

var array = s.split(',').slice(1);

Das setzt voraus, dass der String, mit dem Sie beginnen, tatsächlich ein String ist, wie Sie sagten, und kein Array von Strings.

8
EMMERICH

Einzeiler 

str = str.replace(/^,/, '');

Ich komme wieder.

7
Pawel
var s = ",'first string','more','even more'";  
s.split(/'?,'?/).filter(function(v) { return v; });

Ergebnisse in: 

["first string", "more", "even more'"]

Erste Aufteilung mit Kommas, möglicherweise in Anführungszeichen,
filtern Sie dann die nicht wahrheitsgemäßen (leeren) Teile heraus.

4
peterhil

Angenommen, der String heißt myStr:

// Strip start and end quotation mark and possible initial comma
myStr=myStr.replace(/^,?'/,'').replace(/'$/,'');

// Split stripping quotations
myArray=myStr.split("','");

Wenn eine Zeichenfolge in der Liste fehlen kann, ohne dass Anführungszeichen vorhanden sind und Sie eine leere Stelle an der entsprechenden Stelle im Array wünschen, müssen Sie die Aufteilung manuell schreiben, um eine robuste Lösung zu erhalten.

3
jjrv

Um einen String in ein Array umzuwandeln, verwende ich normalerweise split()

> var s = ",'first string','more','even more'"
> s.split("','")
[",'first string", "more", "even more'"]

Das ist fast das, was du willst. Jetzt müssen Sie nur noch die ersten beiden Zeichen und das letzte Zeichen entfernen:

> s.slice(2, s.length-1)
"first string','more','even more"

> s.slice(2, s.length-2).split("','");
["first string", "more", "even more"]

Um einen Teilstring aus einem String zu extrahieren, verwende ich normalerweise slice() aber substr() und substring() erledige auch die Arbeit.

3
Fabian Jakobs

Sie können die Funktion in Javascript direkt durch Regex ersetzen oder eine Hilfefunktion wie in PHP Ltrim (links) und Rtrim (rechts) definieren:

1) Mit ersetzen:

var myArray = ",'first string','more','even more'".replace(/^\s+/, '').split(/'?,?'/);

2) Hilfefunktionen:

if (!String.prototype.ltrim) String.prototype.ltrim = function() {
    return this.replace(/^\s+/, '');
};
if (!String.prototype.rtrim) String.prototype.rtrim = function() {
    return this.replace(/\s+$/, '');
};
var myArray = ",'first string','more','even more'".ltrim().split(/'?,?'/).filter(function(el) {return el.length != 0});;

Sie können und andere Dinge tun, um der Hilfefunktion Parameter hinzuzufügen, mit denen Sie das Zeichen ersetzen möchten, usw. 

1
onalbi
s=s.substring(1);

Ich mag es, Dinge einfach zu halten.

1
Cris

das wird die nachfolgenden Kommas und Leerzeichen entfernen

var str = ",'first string','more','even more'";
var trim = str.replace(/(^\s*,)|(,\s*$)/g, '');
0
Avinash