JavaScript中format()方法是字符串對象的方法,用于將字符串格式化為指定的格式,這個(gè)方法是很常用的一種字符串處理方式。
用法非常簡單,只需要在字符串中以{0}、{1}、{2}…的方式編寫格式化字符串,然后使用字符串的format()方法進(jìn)行格式化。
const str = "我叫{0},今年{1}歲。"; const name = "小明"; const age = 18; console.log(str.format(name, age)); //輸出:我叫小明,今年18歲。
format()方法可以接收多個(gè)參數(shù),每個(gè)參數(shù)對應(yīng)格式化字符串中的一個(gè)占位符。如果參數(shù)數(shù)量少于占位符數(shù)量,則留下的占位符將以原樣輸出。如果參數(shù)數(shù)量多于占位符數(shù)量,則多出的參數(shù)將被忽略。
const str = "我叫{0},今年{1}歲,我來自{2}。"; const name = "小明"; const age = 18; console.log(str.format(name, age)); //輸出:我叫小明,今年18歲,我來自{2}。 console.log(str.format(name, age, "中國")); //輸出:我叫小明,今年18歲,我來自中國。
format()方法還支持將對象屬性作為參數(shù)傳入。此時(shí)占位符為對象屬性名,使用點(diǎn)語法指定對象屬性。
const obj = { name: "小明", age: 18 }; const str = "我叫{name},今年{age}歲。"; console.log(str.format(obj)); //輸出:我叫小明,今年18歲。
除了傳遞普通的字符串和對象外,還可以通過數(shù)組和arguments對象傳遞參數(shù)。
const str = "我叫{0},今年{1}歲。"; console.log(str.format("小明", 18)); //輸出:我叫小明,今年18歲。 console.log(str.format.apply(str, ["小紅", 20])); //輸出:我叫小紅,今年20歲。 console.log(str.format.apply(str, arguments)); //輸出:我叫小華,今年22歲。
比如我們可以通過format()方法將數(shù)字格式化成金額的形式,如:
Number.prototype.formatCurrency = function() { const number = this.toFixed(2).toString(); const integer = number.split(".")[0]; const decimal = number.split(".")[1]; const reg = /(\d{1,3})(?=(\d{3})+(?:$|\.))/g; return integer.replace(reg, "$1,") + "." + decimal; }; const price = 1999.99; console.log(price.formatCurrency()); //輸出:1,999.99
format()方法是JavaScript中一個(gè)非常實(shí)用的字符串處理方式,可以方便地將任意類型的數(shù)據(jù)格式化為指定的格式,以達(dá)到數(shù)據(jù)展示的目的,具有很好的應(yīng)用價(jià)值。