Javascript Séparateur de Milliers / format de chaîne de caractères
Est-il une fonction en Javascript pour le formatage de nombre et de cordes ?
Je suis à la recherche d'un moyen pour séparateur de milliers de chaîne de caractères ou de chiffres...
(Comme String.Format En c#)
- bytes.com/topic/c-sharp/answers/248039-formatcurrency-equiv
- Je pense que vous trouverez ce dont vous avez besoin là-bas 🙂 stackoverflow.com/questions/610406/...
How to print a number with commas as thousands separators in JavaScript
: stackoverflow.com/questions/2901102/...
Vous devez vous connecter pour publier un commentaire.
Mise à jour (7 ans plus tard)
La référence citée dans la réponse originale à cette question ci-dessous a été mauvais. Il y est un construit en fonction de ce qui est exactement ce que kaiser suggère ci-dessous:
toLocaleString
De sorte que vous pouvez faire:
La fonction de mise en œuvre ci-dessous fonctionne, mais n'est tout simplement pas nécessaire.
(J'ai pensé que je pourrais avoir de la chance et de trouver qu'il était nécessaire en 2010, mais non. Selon cette plus fiable de référence, toLocaleString a fait partie de la norme depuis ECMAScript 3e Édition [1999], qui, je crois, signifie qu'il aurait été pris en charge dès IE 5.5.)
Réponse Originale À Cette Question
Selon cette référence il n'y a pas une fonction intégrée pour l'ajout de virgules pour un certain nombre. Mais cette page contient un exemple de la façon de coder vous-même:
Edit:
Aller dans l'autre sens (convertir en chaîne de caractères avec des virgules pour le nombre), vous pourriez faire quelque chose comme ceci:
(1234567).toLocaleString().replace(/,/g," ",)
pour les espaces entre les milliersS'est d'environ localisation les séparateurs de milliers, les séparateurs de décimales et de séparateurs, aller avec les éléments suivants:
Il y a plusieurs options que vous pouvez utiliser (et même locales avec réserves):
JS:
HTML:
De détails sur la MDN page d'info.
Edit: des Auteurs de @J'aime Serena ajoute:
Number(yourNumberOrString).toLocaleString()
value.toLocaleString('en')
. Fonctionne également pour les calculs en virgule flottante.Une expression régulière peut être utilisé notamment utile dans le traitement de grands nombres stockés en tant que chaînes de caractères.
JS:
» Verbose regex explication (regex101.com)
De tenter de traiter cela avec une seule expression régulière (sans rappel) ma capacité actuelle ne parvient pas à moi pour le manque d'un négatif look-derrière en Javascript... jamais le moins, voici un autre concis alternative qui fonctionne dans la plupart des cas généraux de la comptabilité - pour tout point décimal, en ignorant les matchs où l'indice de la correspondance apparaît après l'indice d'une période.
JS:
» Verbose regex explication (regex101.com)
Il y a une belle jQuery nombre de plugin: https://github.com/teamdf/jquery-number
Il vous permet de changer n'importe quel nombre dans le format que vous souhaitez, avec des options pour des chiffres et des caractères séparateurs de décimales et de milliers d':
Vous pouvez l'utiliser à l'intérieur des champs de saisie directement, ce qui est plus agréable, en utilisant les mêmes options comme ci-dessus:
Ou vous pouvez l'appliquer à un ensemble d'éléments du DOM à l'aide du sélecteur:
J'utilise ceci:
source: lien
'123452343267.0505'.replace(/\B(?=(\d{3})+(?!\d))/g, ","); "123,452,343,267.0,505"
- notez que la dernière virgule après le point décimal.pour la référence, vous pouvez vérifier ici
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString
Vous pouvez utiliser javascript. ci-dessous sont le code, il ne
accept
numérique et unedot
DÉMO JSFIDDLE
PHP.js a une fonction pour faire ce qu'on appelle number_format. Si vous êtes familier avec PHP il fonctionne exactement de la même manière.
Tout ce que vous devez faire est de simplement vraiment cette:
toLocaleString()
qui n'ajoute pas les virgules, ou de manque d'autres fonctions dans la norme. Il est facile de vérifier pourtoLocaleString
présence, mais pas de vérifier sa conformité.Combinaison de solutions pour réagir
Je n'aime pas les réponses ici, j'ai donc créé une fonction qui a fonctionné pour moi. Juste envie de partager au cas où quelqu'un d'autre le trouve utile.