Existe-t-il une fonction en Javascript pour le formatage des nombres et des chaînes?
Je cherche un moyen de séparer les milliers de chaînes ou de nombres ... (comme String.Format In c #)
javascript
string
numbers
format
LostLord
la source
la source
How to print a number with commas as thousands separators in JavaScript
: stackoverflow.com/questions/2901102/…Réponses:
Mise à jour (7 ans plus tard)
La référence citée dans la réponse originale ci-dessous était erronée. Il y a une fonction intégrée pour cela, qui est exactement ce que Kaiser suggère ci-dessous:
toLocaleString
Vous pouvez donc faire:
La fonction implémentée ci-dessous fonctionne également, mais n'est tout simplement pas nécessaire.
(Je pensais que j'avoir de la chance et de savoir qu'il était de retour nécessaire en 2010, mais non. Selon cette référence plus fiable , toLocaleString a fait partie de la norme depuis ECMAScript 3e édition [1999], que je crois signifie qu'il aurait été pris en charge dès IE 5.5.)
Réponse originale
Selon cette référence, il n'y a pas de fonction intégrée pour ajouter des virgules à un nombre. Mais cette page comprend un exemple de la façon de la coder vous-même:
Edit: Pour aller dans l'autre sens (convertir une chaîne avec des virgules en nombre), vous pouvez faire quelque chose comme ceci:
la source
(1234567).toLocaleString().replace(/,/g," ",)
pour les espaces entre des milliersS'il s'agit de localiser des séparateurs de milliers, des délimiteurs et des séparateurs décimaux, procédez comme suit:
Il existe plusieurs options que vous pouvez utiliser (et même des paramètres régionaux avec des solutions de secours):
Détails sur la page d'informations MDN .
Edit: Commentor @J'aime Serena ajoute ce qui suit:
la source
Number(yourNumberOrString).toLocaleString()
value.toLocaleString('en')
. Fonctionne également pour la virgule flottante.Une expression régulière peut être utilisée - particulièrement utile pour traiter de grands nombres stockés sous forme de chaînes.
»Explication verbeuse des expressions régulières (regex101.com)
Tenter de gérer cela avec une seule expression régulière (sans rappel) ma capacité actuelle me fait défaut faute d'un regard négatif en Javascript ... néanmoins, voici une autre alternative concise qui fonctionne dans la plupart des cas généraux - en tenant compte de n'importe quel point décimal en ignorant les correspondances où l'index de la correspondance apparaît après l'index d'une période.
»Explication verbeuse des expressions régulières (regex101.com)
la source
Il y a un joli plugin de numéro jQuery: https://github.com/teamdf/jquery-number
Il vous permet de changer n'importe quel nombre dans le format que vous aimez, avec des options pour les chiffres décimaux et des séparateurs pour les décimaux et les milliers:
Vous pouvez l'utiliser directement dans les champs de saisie, ce qui est plus agréable, en utilisant les mêmes options que ci-dessus:
Ou vous pouvez appliquer à tout un ensemble d'éléments DOM à l'aide du sélecteur:
la source
J'utilise ceci:
source: lien
la source
'123452343267.0505'.replace(/\B(?=(\d{3})+(?!\d))/g, ","); "123,452,343,267.0,505"
- remarquez la dernière virgule après la virgule décimale.la source
pour la référence, vous pouvez vérifier ici https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString
la source
Vous pouvez utiliser javascript. ci-dessous sont le code, il sera uniquement
accept
numérique et undot
DÉMO JSFIDDLE
la source
la source
PHP.js a une fonction pour faire cela appelée number_format . Si vous êtes familier avec PHP, cela fonctionne exactement de la même manière .
la source
Tout ce que vous avez à faire est vraiment ceci :
la source
toLocaleString()
qui n'ajoute pas les virgules, ou manque d'autres fonctionnalités dans la norme. Il est facile de vérifier latoLocaleString
présence mais pas de vérifier sa conformité.Combinaison de solutions pour réagir
la source
Vous pouvez utiliser ngx-format-field. C'est une directive pour formater la valeur d'entrée qui apparaîtra dans la vue. Il ne manipulera pas la valeur d'entrée qui sera enregistrée dans le backend. Voir le lien ici !
Exemple:
Pour voir la démo: ici !
la source
Vous pouvez utiliser la fonction suivante:
la source
Je n'ai aimé aucune des réponses ici, j'ai donc créé une fonction qui a fonctionné pour moi. Je veux juste partager au cas où quelqu'un d'autre le trouverait utile.
la source