2017-05-24 2 views
3

Je travaillais sur un site Web et j'utilisais le code Javascript suivantCulture Monnaie spécifique pour une culture donnée

UsdAmount.toLocaleString(siteCulture, 
     {style: 'currency', currency: 'USD'}) 
CadAmount.toLocaleString(siteCulture, 
     {style: 'currency', currency: 'CAD'}) 

Et cela fonctionnait très bien avec les résultats attendus

Alors que

Culture  Currency Output 
en-us  USD   $123.45 
en-us  CAD   CA$123.45 
en-ca  USD   US$123.45 
en-ca  CAD   $123.45 

Mais cette fonction ne fonctionne pas dans Safari, donc je ne peux pas l'utiliser.

Je me dis que je vais le faire sur le côté serveur en C# et passer la chaîne

Mais cela ne semble pas fonctionner pour deux raisons

  1. Je ne peux pas passer deux cultures, une culture du système et une culture de la monnaie
  2. ne semble pas fonctionner quelque façon que depuis

    4.ToString("C", new CultureInfo("en-us")) ==> "$4.00" 
    4.ToString("C", new CultureInfo("en-ca")) ==> "$4.00" // No CA$ 
    

Donc, d'autres idées sur la mise en forme de la monnaie qui fonctionne dans tous les navigateurs?

+1

La préparation sur le serveur est toujours une bonne idée. Peut mettre en place vos propres règles? –

+0

maintenant je regarde dans l'expression régulière ... les questions sont je ne connais pas les règles internationales à suivre – Mike

+0

Dans les pays avec l'euro ses 123, 45 €. C'est tout ce que je peux vous aider (ne sais pas C et Regex ...) –

Répondre

0

Si vous utilisez un serveur qui prend en charge WinRT (Windows 8 ou version ultérieure), vous pouvez utiliser le currency formatter qui fera ce que vous voulez.