2010-02-02 5 views
22

Je dois configurer une fonction en javascript pour supprimer le premier caractère d'une chaîne, mais seulement s'il s'agit d'une virgule ,. J'ai trouvé la fonction substr mais ceci enlèvera n'importe quoi indépendamment de ce que c'est.Supprimer le premier caractère d'une chaîne s'il s'agit d'une virgule

Mon code actuel est

text.value = newvalue.substr(1); 
+0

manipulation de piqûre directe sera généralement plus rapide qu'un regex. J'irais avec la première réponse de Max S. –

+0

@Jan Aagaard Et je le ferais probablement si c'est une opération à effectuer plusieurs fois. Cependant, je trouve l'expression rationnelle plus facile à comprendre d'un coup d'œil. – jensgram

Répondre

57
text.value = newvalue.replace(/^,/, ''); 

Edit: Testé et vrai. C'est juste un façon de le faire, cependant.

+2

ce qui est à tester? remplacez la virgule d'ancrage ouverte par vide. tu l'as eu. –

+0

parfait, merci beaucoup – kwhohasamullet

+1

@Sky Yup, mais j'aime passer par jsbin.com pour vérifier ... et éliminer les fautes de frappe etc. (Il est encore le matin ici au Danemark.) – jensgram

9
s = (s.length && s[0] == ',') ? s.slice(1) : s; 

Ou avec un regex:

s = s.replace(/^,/, ''); 
2
var result = (myString[0] == ',') ? myString.substr(1) : myString; 
0

merci pour les conseils, a obtenu un code de travail ici pour moi-même. il va copier chaque élément de la liste et supprimer le 1er coma.

var list_with_coma = ", " + list_item; 
var unwantedCharacter = ","; 

$('#id_of_input').val(function(){ 
if (this.value.charAt(0) == unwantedCharacter){ 
this.value = this.value.substr(1);} 
return this.value + list_with_coma; 
}); 
0
text.value = newvalue.startsWith(",") ? newvalue.substring(1) : newvalue; 
Questions connexes