# [Vue.js] Filter過濾器
###### tags: `Vue.js`
### 範例ㄧ:價格
將價格 price 加上千分位符號與 $ 字號。可使用「|」(pipe)聯集多個 Filter,要注意順序,愈靠左愈先執行。
* price為數值,後方為待執行的子函式,預期的結果是$9,990
```
<div id="app">
<div>${ price | commaFormat | priceFormat }</div>
</div>
```
* 新增Filters函數列,子函式們會自動將price的數值當作參數代入,並依序執行條件後回傳。
```
var vm = new Vue({
el: '#app',
delimiters: ['${', '}'],
data: {
price: 9999,
},
Filters: {
priceFormat: function(value) {
// 加上 $ 字號
return '$' + value;
},
commaFormat: function(value) {
// 加上千分位符號
return value
.toString()
.replace(/^(-?\d+?)((?:\d{3})+)(?=\.\d+$|$)/, function(all, pre, groupOf3Digital) {
return pre + groupOf3Digital.replace(/\d{3}/g, ',$&');
});
},
},
});
```
### 範例ㄧ:轉譯星期週數
```
<div>
<h2 class="date-week ml-1">{{date.getDay() | convertToChineseDay}}</h2>
<!-- covert函數會套用另一數值當作參數 -->
</div>
```
透過參數對應的方式,取出當天中文星期數
```
filters: {
convertToChineseDay(day) {
const chineseDay = ["日", "一", "二", "三", "四", "五", "六"];
return `星期${chineseDay[day]}`;
//此時的參數(day)))是套用在I前方的數值,自動套入無需宣告
//取得getday()取得星期,星期日=0 星期一 = 1....
},
},
```