JavaScript – toLocaleString() 方法
JavaScript中toLocaleString()是一个非常有用的方法,它可以将数字转换成本地格式的字符串。这个方法返回一个字符串反映了数字表示所在地区的代码格式化版本。该方法与其他toString()函数唯一的区别是,它会自动使用适当的细节来格式化数字,例如货币符号和千位分隔符。
语法:
numObj.toLocaleString([locales [, options]]);
参数说明:
- locales:字符串数组,用于指定所使用的语言环境及格式的数组。以下是两个可选参数:
- language- 指出用于格式化数字的语言环境代码。
- options- 对象,用于允许您指定货币符号,小数点,等不同的格式选项。
- options:如果提供了语言选项参数locales,但不提供options对象,toLocaleString()使用默认值,否则该参数被忽略。
返回值:
- 表示所调用对象的一个本地化字符串。toLocaleString()方法返回一个字符串,它根据获取时所在的环境具有不同的格式。这个方法无需参数传递默认为当前环境使用。如果数字为NaN或Infinity,它将返回“NaN”或“Infininty”字符串。
下面,我们通过以下代码来演示toLocaleString()方法:
var number = 123456.789;
console.log(number.toLocaleString()); // 123,456.789
var number = 123456.789;
console.log(number.toLocaleString('de-DE')); // 123.456,789
var number = 123456.789;
console.log(number.toLocaleString('ar-EG')); // ١٢٣٬٤٥٦٫٧٨٩
var number = 123456.789;
console.log(number.toLocaleString('zh-Hans-CN-u-nu-hanidec')); // 一二三,四五六.七八九
在上面的代码中,首先定义一个数字变量number,并通过调用toLocaleString()方法将数字格式化为本地字符串。接下来,我们通过传递参数来使用different语言环境和格式选项。这四条语句将显示以下内容:
- 123,456.789
- 123.456,789
- ١٢٣٬٤٥٦٫٧٨٩
- 一二三,四五六.七八九
以上的示例代码演示了如何将数字从一个语言环境转换到另一个语言环境。
此外,toLocaleString()方法还可以与Intl.NumberFormat对象一起使用。您可以创建一个Intl.NumberFormat的实例,以便更好地控制数字格式。
下面的代码演示了toLocaleString()方法如何与Intl.NumberFormat对象一起使用。
var number = 1337;
var nf = new Intl.NumberFormat('en-US');
console.log(nf.format(number)); // "1,337.00"
var number = 1337;
var nf = new Intl.NumberFormat('de-DE');
console.log(nf.format(number)); // "1.337,00"
var number = 1337;
var nf = new Intl.NumberFormat('fa-IR');
console.log(nf.format(number)); // "۱٬۳۳۷٫۰۰"
在上面的代码中,我们首先创建了一个数字的实例,然后创建了一个Intl.NumberFormat实例。最后,我们通过使用.format()方法来显示数字,其中.format()方法接收构造函数的数字参数,并返回格式化后的字符串。
结论
toLocalString()方法是非常有用的一个JavaScript方法。它提供了很多语言环境和格式选项,让我们更好地控制数字转换为字符串的方式。此外,它可以与Intl.NumberFormat对象一起使用,以便更好地控制数字格式化。