初探 Intl.NumberFormat.formatRangeToParts()
前言
在上次 初探 Intl.NumberFormat.formatToParts() 介紹了 formatToParts() ,這次學習的 formatRangeToParts() 跟它很像,在此把學習的過程做個紀錄。
內容
範例如下
let parts = new Intl.NumberFormat("en-US", {
style: "currency",
currency: "USD",
}).formatRangeToParts( 123.45 , 1500);
console.log(parts);
// [[object Object] {
// source: "startRange",
// type: "currency",
// value: "$"
// }, [object Object] {
// source: "startRange",
// type: "integer",
// value: "123"
// }, [object Object] {
// source: "startRange",
// type: "decimal",
// value: "."
// }, [object Object] {
// source: "startRange",
// type: "fraction",
// value: "45"
// }, [object Object] {
// source: "shared",
// type: "literal",
// value: " – "
// }, [object Object] {
// source: "endRange",
// type: "currency",
// value: "$"
// }, [object Object] {
// source: "endRange",
// type: "integer",
// value: "1"
// }, [object Object] {
// source: "endRange",
// type: "group",
// value: ","
// }, [object Object] {
// source: "endRange",
// type: "integer",
// value: "500"
// }, [object Object] {
// source: "endRange",
// type: "decimal",
// value: "."
// }, [object Object] {
// source: "endRange",
// type: "fraction",
// value: "00"
// }]
partValues = parts.map((p) => p.value);
console.log(partValues);//["$", "123", ".", "45", " – ", "$", "1", ",", "500", ".", "00"]
用法和 formatToParts() 很像,指示輸入需要輸入兩個數值來表達範圍,輸出的結果會是個陣列,裡面會有分割好的各部位資料,如果要直接提取可以透過 map() 來提取所有的數值,就像範例的 partValues 一樣,如此就可以直接提取各個部位的資料。
參考資料
[ developer.mozilla.org ] Intl.NumberFormat
沒有留言:
張貼留言