[解決済み] Vueコンポーネントで通貨をフォーマットするには?
2022-11-18 05:59:06
質問
私のVueコンポーネントは次のようなものです。
<template>
<div>
<div class="panel-group"v-for="item in list">
<div class="col-md-8">
<small>
Total: <b>{{ item.total }}</b>
</small>
</div>
</div>
</div>
</template>
<script>
export default {
...
computed: {
list: function() {
return this.$store.state.transaction.list
},
...
}
}
</script>
の結果は
{{ item.total }}
は
26000000
しかし、私はそれがこのようになるようにフォーマットしたい。
26.000.000,00
jqueryやjavascriptで、できます。
しかし、Vueコンポーネントでそれを行うにはどうすればよいですか?
どのように解決するのですか?
UPDATE: @Jess によって提供された、フィルタを使った解決策を使うことをお勧めします。
私なら、そのためのメソッドを書いて、価格をフォーマットする必要があるところでは、テンプレートにメソッドを置いて、値を下に渡すだけです。
methods: {
formatPrice(value) {
let val = (value/1).toFixed(2).replace('.', ',')
return val.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".")
}
}
そして、テンプレートで
<template>
<div>
<div class="panel-group"v-for="item in list">
<div class="col-md-8">
<small>
Total: <b>{{ formatPrice(item.total) }}</b>
</small>
</div>
</div>
</div>
</template>
ちなみに - 置き換えや正規表現にはあまり気を遣っていません。改善されるかもしれません。
enter code here
Vue.filter('tableCurrency', num => {
if (!num) {
return '0.00';
}
const number = (num / 1).toFixed(2).replace(',', '.');
return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
});
関連
-
[解決済み】Vueのテンプレートまたはレンダー関数が定義されていない 私はどちらも使っていないのですが?
-
[解決済み] Vue.js Chrome DevtoolsがVue.jsを検出しないのはなぜですか?
-
プロジェクトノート ---- TypeErrorに遭遇しました。"_vm.xxxxxx は関数ではありません"
-
[解決済み] vuepress2: Vueインスタンスを取得し、サードパーティのVueプラグインを使用できるようにするには?
-
vue springboot reports error DOMException: XMLHttpRequest'の'send'の実行に失敗しました。ロードに失敗しました
-
[解決済み】Vueのv-on:clickがコンポーネントに効かない。
-
[解決済み】Vue.jsでv-onにイベントと引数を渡す。
-
[解決済み】Vue2でデバウンスを実装するには?
-
[解決済み] Vueアプリのビルドを生成するには、どのコマンドを使用すればよいですか?
-
[解決済み] 属性内の補間が削除されました。v-bindかコロンの省略記法を使用してください "を解決するには?Vue.js 2
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Vue.jsで12件中1~3件を表示させるには?
-
[解決済み] Vue 2.0でコンポーネント自身を削除する方法
-
[解決済み] プロジェクトのvue.jsのバージョンを確認する方法は?
-
未定義のプロパティ '0' を読み取ることができません。
-
フロントエンドインタビューの質問まとめ
-
vue3 が axios エラーを導入する 未定義または null をオブジェクトに変換できない
-
[解決済み] 数字を通貨文字列としてフォーマットする方法
-
[解決済み] JavaScriptで変数が数値か文字列かをチェックする
-
[解決済み] Vue.js - シングルファイルコンポーネントでヘルパー関数をグローバルに利用できるようにする
-
[解決済み] 属性内の補間が削除されました。v-bindかコロンの省略記法を使用してください "を解決するには?Vue.js 2