2009-05-26 29 views
62

cadena original es "a, d, k" Quiero eliminar todo "," y llegar a "adk". Intenté: "a, d, k" .replace (/, /, "") pero no funciona. Gracias de antemano.cómo eliminar "," de una cadena en javascript

+1

"No funciona"? Por favor elabora. ¿Qué "no funciona" al respecto? – Rob

+0

Busqué las mismas preguntas. Hice que ahorrara mi tiempo – Krishna

Respuesta

108

No está asignando el resultado del método replace volver a la variable. Cuando llamas a replace, devuelve una nueva cadena sin modificar la anterior.

Por ejemplo, cargar esto en su navegador favorito:

<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> 

En este caso, str1 seguirá habiendo "a,d,k" y str2 habrá "adk".

Si desea cambiar str1, que debería estar haciendo:

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

+1, pero puede hacer var str2; str2 = str.replace (...). He ampliado la respuesta para (con suerte) mejorarla. – paxdiablo

+30

Si quieres hacerlo sin un regex 'str.split (", "). Join (" ")' – William

+0

@Lime ¡Gracias, es muy útil! +1 –

35

Utilice String.replace(), p.

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

Nota la bandera (global) g en la expresión regular, que coincide con todas las instancias de "".

+3

+1 thx para explicar "g" así como –

4

Usted puede intentar algo como:

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 es la respuesta más común. Y se puede utilizar con s= document.location.href;

4

U Si desea eliminar más de un personajes, digamos por comas y los puntos se puede escribir

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

Si usted necesita un número mayor de 999,999.00 va a tener un problema.
Estos solo son buenos para números menores a 1 millón, 1,000,000.
Solo eliminan 1 o 2 comas.

Aquí la secuencia de comandos que puede eliminar hasta 12 comas:

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

modificar ese bucle si necesita números más grandes.

+2

El 'g' en tu expresión regular es global y eliminará todas las comas de la cadena en el primer pase los otros 11 bucles no hacen nada. Además, no necesita escapar del carácter de coma en el literal. Aconsejaría no ser tan hostil y crítico de las respuestas de otras personas. – JaredMcAteer

+0

Es extraño que me funcione con 11 bucles, y no con 1 pase. – Alex

+0

Además, no estaba siendo "hostil" o "crítico".Simplemente informando que el ejemplo anterior es defectuoso y no funciona para números mayores a 1 millón. Necesitaba el código, lo probé, falló, y publiqué mi solución que solo funcionaba con 11 bucles, no funcionaba con 1. ¿Puede decirme por qué? Va en contra de lo que estás diciendo. Entonces no estoy seguro. – Alex

Cuestiones relacionadas