2011-02-09 8 views
2

En Javascript, comment transformer une variable "numérique/chaîne" à seulement numérique? En utilisant une fonction ou une expression régulière.numérique/chaîne à seulement numérique

Exemple: Entrée: 11.489.301/0001-47 à: 11489301000147

Répondre

8

Utilisez replace() pour supprimer tous les caractères non numériques, et à Number() convertir le type de chaîne à un type de numéro:

var num = Number("11.489.301/0001-47".replace(/\D/g, "")); 

alert(num); 
//-> 11489301000147 
+2

+1 pour avoir mémorisé le drapeau 'g' sur l'expression rationnelle – gnarf

+0

+1! Quelle est la différence entre Number (str) et parseInt (str)? ty :) – stecb

+0

@steweb: dans ce cas, pas beaucoup. 'parseInt' va chercher un nombre valide au début de n'importe quelle chaîne, par exemple' 123abc' donnerait 123. D'un autre côté, si le nombre ressemble à un octal et l'argument 'radix' n'est pas passé à' parseInt ', il sera analysé comme un nombre octal, par exemple '010' donnerait' 8'. –

-1

Vous pouvez utiliser les fonctions globales parseFloat/parseInt. Ils vont supprimer tous les caractères principaux et retourner uniquement la représentation numérique.

0

Vous pouvez utiliser regex pour cela: "11.489.301/0001-47" .replace (/ \ D/g, "")

+0

' « \ D »' est pas une expression régulière littérale, il est une chaîne, de sorte que le code ne remplacera la première occurrence du caractère 'D'. – Guffa

+0

C'est vrai, mon mauvais. J'ai corrigé la réponse. Merci beaucoup! –

3

Si vous souhaitez retirer juste tout ce qui ne sont pas les chiffres d'une chaîne que vous pouvez utiliser une expression régulière:

s = s.replace(/\D+/g,''); 

Si vous souhaitez ensuite transformer la chaîne en une valeur numérique, vous pouvez l'analyser:

var n = parseInt(s,10);