2009-05-26 19 views
62

la stringa originale è "a, d, k" Voglio rimuovere tutto "," e renderlo su "adk". Ho provato: "a, d, k" .replace (/, /, "") ma non funziona. Grazie in anticipo.come rimuovere "," da una stringa in javascript

+1

"Non funziona"? Si prega di elaborare. Cosa "non funziona" a riguardo? – Rob

+0

Ho cercato le stesse domande. thnaks per aver risparmiato il mio tempo – Krishna

risposta

108

Non sta assegnando il risultato del metodo replace di nuovo al vostro variabile. Quando si chiama replace, viene restituita una nuova stringa senza modificare quella precedente.

Ad esempio, caricare questo nel vostro browser preferito:

<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 questo caso, saranno ancora str1"a,d,k" e str2 sarà "adk".

Se si desidera cambiare str1, si dovrebbe fare:

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

+1, ma si può semplicemente fare var str2; str2 = str.replace (...). Ho ampliato la risposta a (si spera) per migliorarla. – paxdiablo

+30

Se vuoi farlo senza una regex 'str.split (", "). Join (" ")' – William

+0

@Lime Big thanx è molto utile! +1 –

35

Utilizzare String.replace(), ad es.

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

nota la bandiera g (globale) sull'espressione regolare, che corrisponde a tutte le istanze di "".

+3

+1 thx per spiegare "g" pure –

4

Si può provare qualcosa di simile:

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>

E 'la risposta più comune. E può essere utilizzare con s= document.location.href;

4

Se u vuole eliminare più caratteri, dire virgola e puntini potete scrivere

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

Se avete bisogno di un numero maggiore di 999,999.00 si avrà un problema.
Queste sono valide solo per numeri inferiori a 1 milione, 1.000.000.
Rimuovono solo 1 o 2 virgole.

Ecco lo script in grado di rimuovere fino a 12 virgole:

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

Modificare che per il ciclo, se avete bisogno di grandi numeri.

+2

Il 'g' nella tua espressione regolare significa globale e rimuoverà tutte le virgole dalla stringa sul primo passaggio gli altri 11 loop non fanno nulla. Inoltre non è necessario sfuggire al carattere virgola nel letterale. Consiglierei di non essere così ostile e critico nei confronti delle risposte degli altri. – JaredMcAteer

+0

Strano che funzioni per me con 11 loop, e non con 1 passaggio. – Alex

+0

Inoltre non ero "ostile" o "critico".Basta informare che l'esempio sopra è imperfetto e non funziona per numeri superiori a 1 milione. Avevo bisogno del codice, l'ho testato, non è riuscito e ho pubblicato la mia soluzione che funzionava solo con 11 loop, non funzionava con 1. Puoi dirmi perché? Va contro ciò che stai dicendo. Quindi non sono sicuro. – Alex

Problemi correlati