wie man "," aus einem String in Javascript entfernt


71

Original String ist, "a,d,k" ich möchte alle entfernen ,und es zu machen "adk".

Ich habe den folgenden Code ausprobiert, aber er funktioniert nicht.

"a,d,k".replace(/,/,"")

1
"Funktioniert nicht"? Bitte erläutern Sie. Was "funktioniert nicht" daran?
Rob

2
Ich habe nach den gleichen Fragen gesucht. Danke, dass du mir Zeit gespart hast
Krishna

Antworten:


121

Sie weisen das Ergebnis der Ersetzungsmethode nicht wieder Ihrer Variablen zu. Wenn Sie replace aufrufen, wird eine neue Zeichenfolge zurückgegeben, ohne die alte zu ändern.

Laden Sie dies beispielsweise in Ihren bevorzugten 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 str1wird "a,d,k"und str2bleibt "adk".

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

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

3
+1, aber du kannst einfach var str2 machen; str2 = str.replace (...). Ich habe die Antwort erweitert, um sie (hoffentlich) zu verbessern.
Paxdiablo

36
Wenn Sie es ohne Regex tun möchtenstr.split(",").join("")
Lime

@Lime Vielen Dank, es ist sehr hilfreich! +1
Ishikawa Yoshi

40

Verwenden Sie String.replace()z

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

Beachten Sie das g(globale) Flag im regulären Ausdruck, das allen Instanzen von "," entspricht.


5

Wenn Sie mehr als ein Zeichen löschen möchten, sagen Sie Komma und Punkte, die Sie schreiben können

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

Perfekt, danke +1.
Ajoy Karmakar

4

Sie können etwas versuchen 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 eine häufigere Antwort. Und kann mit verwendet werdens= document.location.href;


-3

Wenn Sie eine Nummer größer als 999.999,00 benötigen, haben Sie ein Problem.
Diese sind nur für Zahlen unter 1 Million, 1.000.000 gut.
Sie entfernen nur 1 oder 2 Kommas.

Hier das Skript, das bis zu 12 Kommas entfernen kann:

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

Ändern Sie diese for-Schleife, wenn Sie größere Zahlen benötigen.


2
Das gin Ihrer Regex bedeutet global und entfernt beim ersten Durchgang alle Kommas aus der Zeichenfolge. Die anderen 11 Schleifen tun nichts. Außerdem müssen Sie dem Komma im Literal nicht entkommen. Ich würde raten, nicht so feindselig und kritisch gegenüber den Antworten anderer zu sein.
JaredMcAteer

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

Ich war auch nicht "feindlich" oder "kritisch". Nur zu informieren, dass das obige Beispiel fehlerhaft ist und nicht für Zahlen größer als 1 Million funktioniert. Ich brauchte den Code, testete ihn, er schlug fehl und ich habe meine Lösung veröffentlicht, die nur mit 11 Schleifen funktionierte und mit 1 nicht funktionierte. Können Sie mir sagen, warum das so ist? Es widerspricht dem, was du sagst. Ich bin mir also nicht sicher.
Alex
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.