字符串

字符的Unicode表示法

JavaScript共有6种方法可以表示一个字符:

'z'
'\z' === 'z'  // true
'\172' === 'z' // true
'\x7A' === 'z' // true
'\u007A' === 'z' // true
'\u{7A}' === 'z' // true

includes(), startsWith(), endsWith()

  • includes():返回布尔值,表示是否找到了参数字符串。

  • startsWith():返回布尔值,表示参数字符串是否在源字符串的头部。

  • endsWith():返回布尔值,表示参数字符串是否在源字符串的尾部。

var s = 'Hello world!';

s.startsWith('world', 6) // true
s.endsWith('Hello', 5) // true
s.includes('Hello', 6) // false

这三个方法都支持第二个参数,表示开始搜索的位置。

repeat()

repeat方法返回一个新字符串,表示将原字符串重复n次。

'x'.repeat(3) // "xxx"
'hello'.repeat(2) // "hellohello"
'na'.repeat(0) // ""

模板字符串

模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。

// 字符串中嵌入变量
var name = "Bob", time = "today";
`Hello ${name}, how are you ${time}?`  

//"Hello Bob, how are you today?"

模板字符串中嵌入变量,需要将变量名写在${}之中。

大括号内部可以放入任意的JavaScript表达式,可以进行运算,以及引用对象属性。模板字符串之中还能调用函数。

var x = 1;
var y = 2;

`${x} + ${y} = ${x + y}`
// "1 + 2 = 3"

function fn() {
  return "Hello World";
}

`foo ${fn()} bar`
// foo Hello World bar

字符编码

var s="hello";

s.codePointAt(0);//返回某个位置字符的码点,
String.fromCodePoint(98);//根据码点返回字符,可以识别大于0xFFFF的码点。

es6中,表示字符的码点使用这种方式:

"\u{61}"
//a

字符查找at()

ES5对字符串查找提供了charAt来返回字符串某位置的字符,但不能识别大于0xFFFF的字符。

at()可以识别Unicode编码大于0xFFFF的字符。

'abc'.at(0) // "a"
'𠮷'.at(0) // "𠮷"

字符串补全方法padStart() padEnd()

padStart用于头部补全,padEnd用于尾部补全。

'x'.padStart(5, 'ab') // 'ababx'
'x'.padStart(4, 'ab') // 'abax'

'x'.padEnd(5, 'ab') // 'xabab'
'x'.padEnd(4, 'ab') // 'xaba'

'09-12'.padStart(10, 'YYYY-MM-DD') // "YYYY-09-12"

'abc'.padStart(10, '0123456789')// '0123456abc'

padStartpadEnd一共接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串。

Last updated