String.prototype.slice()
slice()截取字符串的一部分,并返回这个新字符串
'my name is amz'.slice(11) // "amz" 传递2个参数,第一个参数是从什么位置开始裁剪,第二个参数是 截取到什么地方,如果没传递第二个参数,就默认裁剪到最后一位 'my name is amz'.slice(0,2) // 'my' 从第1位裁剪到第三位 'my name is amz'.slice(0,-1) // "my name is am" 两个参数都可以是负数, 负数参数相加原字符串的长度 也就是上面的意思是说 从第1位裁剪到'my name is amz'.length + -1的位置
String.prototype.split()
split()方法把字符串分割成数组 const amz = 'my name is amz' amz.split() // ['my name is amz'] amz.split(' ', 2) // ['m', ''y'] 第二个参数是获取字符串的几位,分割成数组 amz.split('name') // ["my ", " is amz"] 第一个参数是 拿掉字符串匹配的字符段 然后分割数组 amz.split('m') // ["", "y na", "e is a", "z"] 第一个参数可以是正则表达式
String.prototype.replace()
replace()方法返回一个由替换值 替换一些匹配到的新字符串,
const amz = 'my name is amz‘ amz.replace(/amz/, '123') // 'my name is 123' amz.replace('m', '123') // '123y name is amz'
String.prototype.trim()
trim()清除字符串两端的空格
const amz = ' my name is amz ‘ amz.trim() // 'my name is amz'
String.prototype.charAt()
charAt()方法用于返回字符串指定位置的字符
'amz'.charAt() // 'a' 不传索引则默认为0 'amz'.charAt(1) // 'm'
String.prototype.concat()
concat()将多个字符串拼接在一起
const a = 'aaa' const b = 'bbb' const c = 'ccc'.concat(a, b, 'ddd') console.log(c) // 'cccaaabbbddd'
String.prototype.indexOf()
indexOf()方法返回给定字符串在原字符串中首次出现的索引
const name = 'my name is amz' name.indexOf('my n') //0 字符串可以给字符串 name.indexOf('y') // 1 name.indexOf('m', 6) //12 //第二个参数是从第几位开始找 name.indexOf('l') // -1 没找到返回-1
String.prototype.lastIndexOf()
lastIndexOf()方法返回给定字符串在原字符串中最后一次出现的索引
const name = 'my name is amz' name.lastIndexOf('m') //12 name.lastIndexOf('m',7) //5 第二个参数是从第几位开始找,说白了 可以理解把name那个字符串从第七位截取,后面的不要了, //然后在应用一下name.lastIndexOf('m') , //在理解一下,就是从第七位开始向前面找首次出现m的位置
String.prototype.search()
search()返回字符串在指定字符串首次出现的位置,如果没找到就返回-1
'my name is amz'.search('amz') // 11 'my name is amz'.search('my') // 0 'my name is amz'.search(/amz/) // 11 也可以传正则表达式
String.prototype.toLocaleLowerCase()
toLocaleLowerCase()转化字符串为小写
const amz = 'my NAME is amz' amz.toLocaleLowerCase() //'my name is amz' const amz1 = 'MY NAME IS AMZ' amz1.toLocaleLowerCase() //my name is amz'
String.prototype.toLocaleUpperCase()
toLocaleUpperCase()将字符串转化为大写
const amz = 'my name IS amz' amz.toLocaleUpperCase() // ''MY NAME IS AMZ
es6新增
- String.prototype.includes():返回布尔值,表示是否找到了参数字符串。
- String.prototype.startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
- String.prototype.endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。
let s = 'Hello world!';
s.startsWith('Hello') // true
s.endsWith('!') // true
s.includes('o') // true
这三个方法都支持第二个参数,表示开始搜索的位置。
let s = 'Hello world!';
s.startsWith('world', 6) // true
s.endsWith('Hello', 5) // true
s.includes('Hello', 6) // false
上面代码表示,使用第二个参数n
时,endsWith
的行为与其他两个方法有所不同。它针对前n
个字符,而其他两个方法针对从第n
个位置直到字符串结束。
String.prototype.padEnd()
padEnd()方法接受两个两个参数,第一个参数是目标字符串期望的长度,第二个参数是如果字符串长度没达到期望的长度就用第二个参数添加到目前字符串的尾部,使它达到期望的长度
‘abc’.padEnd(5) // 'abc ' 如果第二个参数没有传,就会用空格代替 ‘abc’.padEnd(2, 'amz') // 'abc' 如果期望长度小于目标字符串长度 那么就对目标字符串什么也不做,按照原来的返回 'abc'.padEnd(6, '123456') // 'abc123'
String.prototype.padStart()
padStart()方法接受两个两个参数,第一个参数是目标字符串期望的长度,第二个参数是如果字符串长度没达到期望的长度就用第二个参数添加到目前字符串的前面,使它达到期望的长度
'abc'.padStart(6, '123456') // '123abc'
String.prototype.repeat()
repeat
方法返回一个新字符串,表示将原字符串重复n
次。
'x'.repeat(3) // "xxx"
'hello'.repeat(2) // "hellohello"
'na'.repeat(0) // ""
参数如果是小数,会被取整。
'na'.repeat(2.9) // "nana"