Considérez un scénario non DOM dans lequel vous souhaitez supprimer tous les caractères non numériques d'une chaîne à l'aide de JavaScript / ECMAScript. Tous les caractères à portée 0 - 9
doivent être conservés.
var myString = 'abc123.8<blah>';
//desired output is 1238
Comment pourriez-vous y parvenir en JavaScript simple? N'oubliez pas qu'il s'agit d'un scénario non DOM, donc jQuery et d'autres solutions impliquant des événements de navigateur et de pression de touche ne conviennent pas.
javascript
string
p.campbell
la source
la source
\D
?replace
travail avec cette syntaxe exacte dans tous les navigateurs? semble que je me souviens avoir obtenu uneobject has no method 'replace'
dans une ancienne version d'IE lorsque j'utilise ceci avec du texte que j'ai saisi avec jQuery ... ou quelque chose comme ça.Si vous en avez besoin pour laisser le point pour les nombres flottants, utilisez ceci
la source
"aaa 2.9px of bbb.".replace(/[^\d.-]/g, '')
→2.9.
Devrait supprimer toute chaîne qui pourrait entourer un nombre ..-
(négatifs)) :)parseFloat("-1234.5.50 €".replace(/[^\d.-]/g, ''))
Utilisez une expression régulière si votre implémentation de script les prend en charge. Quelque chose comme:
la source
Vous pouvez utiliser un RegExp pour remplacer tous les caractères non numériques:
la source
Quelque chose dans le sens de:
la source
yourString = yourString.replace ( /[^0-9.]/g, '' );
essayer
Afficher l'extrait de code
la source
Dans Angular / Ionic / VueJS - je viens de trouver une méthode simple pour:
Utilisation sur la vue:
la source
Malheureusement, aucune des réponses ci-dessus n'a fonctionné pour moi.
Je cherchais à convertir des nombres monétaires à partir de chaînes telles que
$123,232,122.11
(1232332122.11) ouUSD 123,122.892
(123122.892) ou toute devise comme₹ 98,79,112.50
(9879112.5) pour me donner une sortie numérique comprenant le pointeur décimal.J'ai dû faire ma propre expression régulière qui ressemble à ceci:
la source
Fonction courte pour supprimer tous les caractères non numériques mais conserver la décimale (et renvoyer le nombre):
la source
nous sommes en 2017 maintenant vous pouvez également utiliser ES2016
ou
Le résultat est
la source