192 votes

Supprimer le premier caractère d'une chaîne Javascript

J'ai la chaîne suivante:

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

Je veux transformer ceci en un tableau mais évidemment ce n'est pas valide en raison de la première virgule. Comment puis-je supprimer la première virgule de ma chaîne et en faire un tableau valide?

Je voudrais finir avec quelque chose comme ça:

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

Je vous remercie.

315voto

Joel Etherton Points 24155

Pour supprimer le premier caractère que vous utiliseriez:

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

Je ne suis pas sûr que ce soit le résultat que vous recherchez, car vous aurez toujours besoin de le diviser pour créer un tableau avec lui. Peut-être que quelque chose comme:

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

Gardez à l'esprit que le caractère sera une partie de chaque chaîne dans la division ici.

97voto

thomasrutter Points 42905

Dans ce cas précis (il y a toujours un seul caractère au début que vous souhaitez supprimer), vous voudrez:

 str.substring(1)
 

Cependant, si vous voulez être capable de détecter si la virgule est là et la supprimer si c'est le cas, alors quelque chose comme:

 if (str.substring(0, 1) == ',') { 
  str = str.substring(1);
}
 

10voto

EMMERICH Points 2265
 var s = ",'first string','more','even more'";

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

Cela suppose que la chaîne avec laquelle vous commencez est en fait une chaîne, comme vous l'avez dit, et non un tableau de chaînes.

4voto

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

Résulte en:

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

Première division avec des virgules éventuellement entourées de guillemets simples,
puis filtrer les parties non véridiques (vides).

3voto

Fabian Jakobs Points 7047

Pour transformer une chaîne en un tableau que j'utilise habituellement split()

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

C'est presque ce que vous voulez. Maintenant, vous avez juste à dépouiller les deux premiers et le dernier caractère:

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

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

Extraire une sous-chaîne d'une chaîne de caractères que j'utilise habituellement slice() mais substr() et substring() aussi faire le travail.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X