# 字符串API

# 基本

String(xx) // 把某个值转化为字符串

charAt(index) // 返回指定位置字符串

indexOf()  // 查找某个字符串,返回下标,没有返回 -1

str.concat(str1, str2...)  // 连接字符串

str.slice(start, end) // 返回截取某个区间的字符串

str.substr(start, length) // 返回截取指定length字符串

str.split() // 以str中的某个字符分割为数组
  'xhxhxhxhx'.split('h')  // ['x', 'x', 'x', 'x', 'x']

str.trim() // 去掉字符串中的空格

# 查找

str.match(val)/str.match(regexp) // 检索返回匹配到值的数组
  'h1h2h3'.match(/\d+/g) //  ["1", "2", "3"]

str.replace(regexp/substr, replacement) // 以replacement替换匹配到的正则或字符串
  'xxxhxxh'.replace('h', 'g') // "xxxgxxh" 字符串只匹配第一个
  'xxxhxxHxx'.replace(/h/ig, 'g') // "xxxgxxgxx" 全局匹配
  // $& $1 $2

str.search(val/regexp) // 返回第一个匹配到的字符串的起始位置,没有返回-1 和indexOf类似

# ES6

str.includes(x) // 是否包含某个字符串,返回布尔值  比indexOf方便多了
str.startsWith(x) // 返回布尔值,表示参数字符串是否在原字符串的头部。
str.endsWith(x) // 返回布尔值,表示参数字符串是否在原字符串的尾部。

str.repeat(n) // 返回一个新字符串,将原字符串重复n次

// 补全长度功能
'x'.padStart(5, 'ab') // 'ababx' 字符串不够指定的长度,在头部补全
'x'.padEnd(5, 'ab') // 'xabab' 字符串不够指定的长度,在尾部补全
// 可以用于补零和格式提示功能
'1'.padStart(2, '0') // "02"
'12'.padStart(10, 'YYYY-MM-DD') // "YYYY-MM-12"

// 去除空格
const s = '  abc  ';
s.trim() // "abc" 消除首尾空格,中间的无法消除
s.trimStart() // "abc  " 消除头部的空格
s.trimEnd() // "  abc" 消除尾部的空格