2010-02-02 9 views
22

Ich muss eine Funktion in Javascript einrichten, um das erste Zeichen einer Zeichenfolge zu entfernen, aber nur, wenn es ein Komma , ist. Ich habe die substr Funktion gefunden, aber das wird alles entfernen, egal was es ist.Entfernen Sie das erste Zeichen aus einer Zeichenfolge, wenn es ein Komma ist

Mein aktueller Code ist

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

Direkt Stachel Manipulation wird in der Regel schneller als ein regex. Ich würde mit der ersten Antwort von Max S gehen. –

+0

@Jan Aagaard Und so würde ich wahrscheinlich, wenn dies eine Operation ist mehrmals durchgeführt werden. Ich finde jedoch, dass die Regex auf einen Blick leichter zu verstehen ist. – jensgram

Antwort

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

Edit: Getestet und wahr. Dies ist nur ein Weg, es zu tun, obwohl.

+2

was soll getestet werden? Ersetze das offene Ankerkomma mit leer. du hast es. –

+0

perfekt, vielen Dank – kwhohasamullet

+1

@Sky Yup, aber ich mag durch jsbin.com laufen zu überprüfen ... und Tippfehler etc. zu beseitigen (Es ist immer noch Morgen hier in Dänemark.) – jensgram

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

Oder mit einem regex:

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

Dank für die Tipps, bekam hier einen funktionierenden Code für mich. wird jedes Listenelement kopiert und das 1. Koma entfernt.

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; 
Verwandte Themen