Javascript-字符串与文本格式化
字符串
JavaScript 中的 String 类型用于表示文本型的数据. 它是由无符号整数值(16bit)作为元素而组成的集合. 字符串中的每个元素在字符串中占据一个位置. 第一个元素的 index 值是 0, 下一个元素的 index 值是 1, 以此类推. 字符串的长度就是字符串中所含的元素个数。你可以通过 String 字面值或者 String 对象两种方式创建一个字符串。
String 字面量
‘foo’
“bar”
16 进制转义序列
\x
之后的数值将被认为是一个 16 进制数.
'\xA9' // "©"
Unicode 转义序列
Unicode 转义序列在\u 之后需要至少 4 个字符.
'\u00A9' // "©"
字符串对象
String 对象是对原始 string 类型的封装
1 | var s = new String("foo") // Creates a String object |
你可以在 String 字面值上使用 String 对象的任何方法—JavaScript 自动把 String 字面值转换为一个临时的 String 对象, 然后调用其相应方法,最后丢弃此临时对象.在 String 字面值上也可以使用 String.length 属性.
除非必要, 应该尽量使用 String 字面值, 因为 String 对象的某些行为可能并不与直觉一致.
String 对象方法
见 String 对象的方法.
多行模板字符串
模板字符串是一种允许内嵌表达式的 String 字面值. 可以用它实现多行字符串或者字符串内插等特性.
模板字符串使用反勾号 (grave accent) 包裹内容而不是单引号或双引号. 模板字符串可以包含占位符。占位符用美元符号和花括号标识 (${expression}
).
- 多行
1 | console.log(`string text line 1 |
- 嵌入表达式
为了在一般的字符串中嵌入表达式, 需要使用如下语法:
1 | var a = 5 |
使用模板字符串, 可以使用语法糖让类似功能的实现代码更具可读性:
1 | var a = 5 |
国际化
Intl 对象是 ECMAScript 国际化 API 的命名空间, 它提供了语言敏感的字符串比较,数字格式化和日期时间格式化功能. Collator, NumberFormat, 和 DateTimeFormat 对象的构造函数是Intl
对象的属性.
日期和时间格式化
DateTimeFormat 对象在日期和时间的格式化方面很有用. 下面的代码把一个日期格式化为美式英语格式. (不同时区结果不同.)
1 | var msPerDay = 24 * 60 * 60 * 1000 |
数字格式化
NumberFormat 对象在数字的格式化方面很有用, 比如货币数量值.
1 | var gasPrice = new Intl.NumberFormat("en-US", { |
定序
Collator 对象在字符串比较和排序方面很有用.