Javascript 字符串与文本格式化

2022-05-17 18:18:31 浏览数 (1)

字符串

JavaScript中的 String 类型用于表示文本型的数据. 它是由无符号整数值(16bit)作为元素而组成的集合. 字符串中的每个元素在字符串中占据一个位置. 第一个元素的index值是0, 下一个元素的index值是1, 以此类推. 字符串的长度就是字符串中所含的元素个数.你可以通过String字面值或者String对象两种方式创建一个字符串。

String字面量

'foo' "bar"

16进制转义序列 x之后的数值将被认为是一个16进制数. 'xA9' // "©"

Unicode转义序列 Unicode转义序列在u之后需要至少4个字符. 'u00A9' // "©"

字符串对象

String 对象是对原始string类型的封装 .

代码语言:javascript复制
var s = new String("foo"); // Creates a String object
console.log(s); // Displays: { '0': 'f', '1': 'o', '2': 'o'}
typeof s; // Returns 'object'

你可以在String字面值上使用String对象的任何方法—JavaScript自动把String字面值转换为一个临时的String对象, 然后调用其相应方法,最后丢弃此临时对象.在String字面值上也可以使用String.length属性.

除非必要, 应该尽量使用String字面值, 因为String对象的某些行为可能并不与直觉一致.

String对象方法

见 String 对象的方法.

多行模板字符串

模板字符串是一种允许内嵌表达式的String字面值. 可以用它实现多行字符串或者字符串内插等特性.

模板字符串使用反勾号 () (grave accent) 包裹内容而不是单引号或双引号. 模板字符串可以包含占位符. 占位符用美元符号和花括号标识 (${expression}).

  • 多行
代码语言:javascript复制
console.log(`string text line 1
string text line 2`);
// "string text line 1
// string text line 2"
  • 嵌入表达式 为了在一般的字符串中嵌入表达式, 需要使用如下语法:
代码语言:javascript复制
var a = 5;
var b = 10;
console.log("Fifteen is "   (a   b)   " andnnot "   (2 * a   b)   ".");
// "Fifteen is 15 and
// not 20."

使用模板字符串, 可以使用语法糖让类似功能的实现代码更具可读性:

代码语言:javascript复制
var a = 5;
var b = 10;
console.log(`Fifteen is ${a   b} andnnot ${2 * a   b}.`);
// "Fifteen is 15 and
// not 20."

国际化

Intl 对象是ECMAScript国际化API的命名空间, 它提供了语言敏感的字符串比较,数字格式化和日期时间格式化功能. Collator, NumberFormat, 和 DateTimeFormat 对象的构造函数是Intl对象的属性.

日期和时间格式化

DateTimeFormat 对象在日期和时间的格式化方面很有用. 下面的代码把一个日期格式化为美式英语格式. (不同时区结果不同.)

代码语言:javascript复制
var msPerDay = 24 * 60 * 60 * 1000;
 
// July 17, 2014 00:00:00 UTC.
var july172014 = new Date(msPerDay * (44 * 365   11   197));//2014-1970=44年
//这样创建日期真是醉人。。。还要自己计算天数。。。11是闰年中多出的天数。。。
//197是6×30 16(7月的16天) 3(3个大月)-2(2月少2天)

var options = { year: "2-digit", month: "2-digit", day: "2-digit",
                hour: "2-digit", minute: "2-digit", timeZoneName: "short" };
var americanDateTime = new Intl.DateTimeFormat("en-US", options).format;
 
console.log(americanDateTime(july172014)); // 07/16/14, 5:00 PM PDT

数字格式化

NumberFormat 对象在数字的格式化方面很有用, 比如货币数量值.

代码语言:javascript复制
var gasPrice = new Intl.NumberFormat("en-US",
                        { style: "currency", currency: "USD",
                          minimumFractionDigits: 3 });
 
console.log(gasPrice.format(5.259)); // $5.259

var hanDecimalRMBInChina = new Intl.NumberFormat("zh-CN-u-nu-hanidec",
                        { style: "currency", currency: "CNY" });
 
console.log(hanDecimalRMBInChina.format(1314.25)); // ¥ 一,三一四.二五

定序

Collator 对象在字符串比较和排序方面很有用.

0 人点赞