2009-05-26 12 views
62

Original String ist "a, d, k" Ich möchte alle entfernen "," und es zu "adk". Ich habe versucht: "a, d, k" .replace (/, /, ""), aber es funktioniert nicht. Vielen Dank im Voraus.wie zu entfernen "," aus einer Zeichenfolge in Javascript

+1

"Funktioniert nicht"? Bitte erläutern. Was "funktioniert" nicht? – Rob

+0

Ich suchte nach den gleichen Fragen. thnaks zum Speichern meiner Zeit – Krishna

Antwort

108

Sie sind nicht das Ergebnis des Verfahrens auf Ihre Variable ersetzen Zuordnung zurück. Wenn Sie replace aufrufen, wird eine neue Zeichenfolge zurückgegeben, ohne die alte zu ändern.

Zum Beispiel lädt diese in Ihren Lieblings-Browser:

<html><head></head><body> 
    <script type="text/javascript"> 
     var str1 = "a,d,k"; 
     str1.replace(/\,/g,""); 
     var str2 = str1.replace(/\,/g,""); 
     alert (str1); 
     alert (str2); 
    </script> 
</body></html> 

In diesem Fall wird str1"a,d,k" sein noch und str2 werden "adk" sein.

Wenn Sie str1 ändern möchten, sollten Sie tun:

var str1 = "a,d,k"; 
str1 = str1.replace (/,/g, ""); 
+3

+1, aber Sie können einfach var str2; str2 = str.replace (...). Ich habe die Antwort erweitert, um sie (hoffentlich) zu verbessern. – paxdiablo

+30

Wenn Sie es ohne eine Regex 'str.split (", ") tun wollen. Join (" ")' – William

+0

@ Lime Big Thanx ist sehr hilfreich! +1 –

35

Verwendung String.replace(), z.B.

var str = "a,d,k"; 
str = str.replace(/,/g, ""); 

Notiere die g -Flag (global) auf den regulären Ausdruck, der alle Instanzen übereinstimmt "".

+3

+1 thx für die Erklärung "g" sowie –

4

können Sie versuchen, so etwas wie:

var str = "a,d,k"; 
str.replace(/,/g, ""); 
-2

<script type="text/javascript">var s = '/Controller/Action#11112';if(typeof s == 'string' && /\?*/.test(s)){s = s.replace(/\#.*/gi,'');}document.write(s);</script>

Es ist häufiger Antwort. Und kann mit s= document.location.href;

4

verwenden, wenn U mehr als ein Zeichen löschen möchten, sagen Komma und Punkte können Sie

<script type="text/javascript"> 
    var mystring = "It,is,a,test.string,of.mine" 
    mystring = mystring.replace(/[,.]/g , ''); 
    alert(mystring); 
</script> 
-3

schreiben Wenn Sie eine Nummer benötigen mehr als 999,999.00 Sie ein Problem haben.
Diese sind nur für Zahlen von weniger als 1 Million, 1.000.000.
Sie entfernen nur 1 oder 2 Kommas.

Hier ist das Skript, das zu 12 Komma entfernen kann:

function uncomma(x) { 
    var string1 = x; 
    for (y = 0; y < 12; y++) { 
    string1 = string1.replace(/\,/g, ''); 
    } 
    return string1; 
} 

dass für Schleife ändern, wenn Sie größere Zahlen benötigen.

+2

Das 'G' in Ihrer Regex bedeutet global und wird alle Kommas aus der Zeichenfolge auf den ersten Durchlauf entfernen die anderen 11 Schleifen machen nichts. Außerdem müssen Sie das Kommazeichen im Literal nicht verlassen. Ich würde raten, nicht so feindselig und kritisch gegenüber den Antworten anderer zu sein. – JaredMcAteer

+0

Seltsam, dass es bei mir mit 11 Loops funktioniert und nicht mit 1 Pass. – Alex

+0

Auch ich war nicht "feindlich" oder "kritisch".Ich informiere nur, dass das obige Beispiel fehlerhaft ist und nicht für Zahlen größer als 1 Million funktioniert. Ich brauchte den Code, testete ihn, es scheiterte, und ich habe meine Lösung gepostet, die nur mit 11 Loops funktionierte, funktionierte nicht mit 1. Kannst du mir sagen, warum das so ist? Es widerspricht dem, was du sagst. Ich bin also unsicher. – Alex

Verwandte Themen