Vous pouvez choisir les numéros d'une chaîne arbitraire avec regex:
var match= string.match(/[0-9,.]*/);
if (match!==null) {
var amount= parseFloat(match[0].replace(/,/g, '')); // replace , thousands separator
}
Cependant! C'est généralement un non-non pour stocker des montants en argent dans un type à virgule flottante en raison de l'inexactitude des calculs à virgule flottante. Bien sûr, JavaScript seulement vous donne des nombres à virgule flottante, mais en collant à des nombres entiers (par exemple des centimes) vous obtenez des calculs précis jusqu'à l'étrange quadrillion.
Le meilleur de tous pour traiter de l'argent est d'utiliser un type arithmétique décimal. Ce n'est pas un type intégré en JavaScript, mais voici an implementation. (Il est malheureusement assez lourd ... Je pense à un piratage plus simple de mise en œuvre juste les bases pour les cas trivial où vous avez besoin arithmétique de base.)
Je suis aussi intéressé de savoir comment pour remplacer les caractères alphabétiques dire '*'
regex nouveau:
string.replace(/[A-Z]/gi, '*')
(pour les valeurs de « caractères alphabétiques » en vous ASCII Si vous avez besoin de lettres non-ASCII Unicode à remplacer'D. avoir à construire un charac beaucoup plus impliqué ter classe ... JavaScript ne pas classes intégrées pour les métadonnées du caractère entier Unicode.)
Merci pour la bonne réponse. J'ai trouvé que je voulais une regex légèrement différente: string.match (/ [0-9,.] +/G) –