2017-05-12 6 views
1

デフォルトの数字jsフォーマットで番号と通貨フォーマットを保存しています。ユーザーは自分のロケール設定に基づいて独自の書式設定を行うことができます。私は彼らがロケールを変更する場合に一貫してそれを保存するために、私は彼らのカスタム書式をデフォルトの書式に戻す方法を理解しようとしています。例えばロケールフォーマットをnumeric.jsでデフォルトに戻します

電流が設定されている:私は戻って優先フォーマットとして「0.0,00€」を取得するとどのように私は変換することができ、

numeral.register('locale', 'fr', { 
delimiters: { 
    thousands: '.', 
    decimal: ',' 
}, 
abbreviations: { 
    thousand: 'k', 
    million: 'm', 
    billion: 'b', 
    trillion: 't' 
}, 
ordinal : function (number) { 
    return number === 1 ? 'er' : 'ème'; 
}, 
currency: { 
    symbol: '€' 
} 
}); 

バックデフォルトnumeral.jsは「0,0.00さに設定することです$ 'を保存します。

答えて

1

地元をnumeral.local('en')で設定することで、地域を簡単に切り替えることができます。 litteヘルパー関数を使ってそれを行うことができます。あなたはそれを必要なローカルとおそらくあなたが切り替えられる必要がある現在の数字に渡す必要があります。

これはまさにその例です。また、両替の間に変換するためにmoney.jsを追加しました。 アイデアを得ることができると確信しています。

var yourNumeral = numeral(1234.56); 
 

 
// helper fn to switch local and convert. 
 
function switchLocal(local, num, convert) { 
 
    numeral.locale(local); 
 
    num.set(fx.convert(num.value(), convert)); 
 
    return num.format(); 
 
} 
 

 
// set money.js base and rates 
 
fx.base = "EUR"; 
 
fx.rates = { 
 
    "USD" : 1.0873 // eg. 1 EUR === 1.0873 USD 
 
}; 
 

 
// set default format. 
 
numeral.defaultFormat('0,0[.]00 $'); 
 
// load a locale. 
 
numeral.register('locale', 'fr', { 
 
    delimiters: { 
 
    thousands: ' ', 
 
    decimal: ',' 
 
    }, 
 
    abbreviations: { 
 
    thousand: 'k', 
 
    million: 'm', 
 
    billion: 'b', 
 
    trillion: 't' 
 
    }, 
 
    ordinal : function (number) { 
 
    return number === 1 ? 'er' : 'ème'; 
 
    }, 
 
    currency: { 
 
    symbol: '€' 
 
    } 
 
}); 
 
// set the loaded local. 
 
numeral.locale('fr'); 
 

 
// yourNumeral with loaded local "fr". 
 
console.log(yourNumeral.format()); 
 
// yourNumeral switched local to "en" and converted from € to $. 
 
console.log(switchLocal('en', yourNumeral, { from: "EUR", to: "USD" })); 
 
// yourNumeral switched back to "fr" local and converted back to € from $. 
 
console.log(switchLocal('fr', yourNumeral, { from: "USD", to: "EUR" }));
<script src="https://openexchangerates.github.io/money.js/money.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/numeral.js/2.0.6/numeral.min.js"></script>

関連する問題