字符串方法
- 字符串切割
- slice
- strObj.slice(start[,end])
- 参数为负,将它作为length+end处理,此处length为字符串的长度。
- str.slice(-2)可以取字符串后两位
- substring
- strObj.substring(start[,end])
- substring方法使用start和end两者中的较小值作为子字符串的起始点。
- 如果start或end为NaN或者为负数,那么将其替换为0。
- 两个参数不确定是起始位置还是结束位置时使用
- substr
- strObj.substr(start[,length])
- 如果start为负,将它作为length+start处理,此处length为字符串的长度。
- 返回一个从指定位置开始的指定长度的子字符串。
- str.substr(-2)可以取字符串后两位
- slice
- 字符串分割(字符串转数组)
- split
- strObj.split([separator[,limit]])
- separator字符串或 正则表达式 对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽略该选项,返回包含整个字符串的单一元素数组。
- limit该值用来限制返回数组中的元素个数。
- var str = "AA BB CC DD EE FF";
- alert(str.split(" ",3));
- 结果:
- AA,BB,CC
- split
- 子串识别
注意:如果向 startsWith() 、 endsWith() 或 includes() 方法传入了正则表达式而不是字符串,会抛出错误。而对于indexOf()和lastIndexOf()这两个方法,它们会将正则表达式转换为字符串并搜索它。若需要找到它们在字符串中的确切位置,则需要使用 indexOf() 和 lastIndexOf() 。- includes (es6)
- 该方法在给定文本存在于字符串中的任意位置时会返回 true ,否则返回false。
- 接受两个参数:需要搜索的文本,以及可选的搜索起始位置索引
- startsWith (es6)
- 该方法在给定文本出现在字符串起始处时返回 true ,否则返回 false
- 接受两个参数:需要搜索的文本,以及可选的搜索起始位置索引
- endsWith (es6)
- 该方法在给定文本出现在字符串结尾处时返回 true ,否则返回 false
- 接受两个参数:需要搜索的文本,以及可选的搜索起始位置索引
- indexOf
- strObj.indexOf(substr[,startIndex])
- 返回String对象内第一次出现子字符串位置。没有找到子字符串,则返回-1。
- var str = "ABCDECDFG";
- str.indexOf("CD",1); // 由1位置从左向右查找 12,23...
- 结果:2
- lastIndexOf
- strObj.lastIndexOf(substr[,startindex])
- 返回String对象中字符串最后出现的位置。没有找到子字符串,则返回-1。
- var str = "ABCDECDFG";
- str.lastIndexOf("CD",7); // 由7位置从右向左查找 67, 56...
- 结果:5
- search
- 参数为字符串或者正则表达式
- 返回匹配的第一个字符串的位置(就算是带g全局标志也是返回匹配的第一个字符串的位置)
- includes (es6)
- 字符串重复
- repeat(es6)
- 接受一个参数作为字符串的重复次数,返回一个将初始字符串重复指定次数的新字符串
- 参数如果是小数,会被取整(向下取整,等同floor)
console.log('na'.repeat(2.9)); // "nana" - 如果repeat的参数是负数或者Infinity,会报错
//Uncaught RangeError: Invalid count value
console.log('na'.repeat(Infinity));
//Uncaught RangeError: Invalid count value
console.log('na'.repeat(-1)); - 如果参数是0到-1之间的小数,则等同于0,这是因为会先进行取整运算。0到-1之间的小数,取整以后等于-0,repeat视同为0
console.log('na'.repeat(-0.9)); // "" - 参数NaN等同于0
console.log('na'.repeat(NaN)); // "" - 如果repeat的参数是字符串,则会先转换成数字
console.log('na'.repeat('na')); // ""
console.log('na'.repeat('3')); // "nanana" - 应用:缩进级别
- repeat(es6)
- 字符串补全
- padStart(es8)和padEnd(es8)
- 接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串
'x'.padStart(5, 'ab') // 'ababx'
'x'.padStart(4, 'ab') // 'abax'
'x'.padEnd(5, 'ab') // 'xabab'
'x'.padEnd(4, 'ab') // 'xaba' - 如果省略第二个参数,默认使用空格补全长度
'x'.padStart(4) // ' x'
'x'.padEnd(4) // 'x ' - 如果原字符串的长度,等于或大于指定的最小长度,则返回原字符串
'xxx'.padStart(2, 'ab') // 'xxx'
'xxx'.padEnd(2, 'ab') // 'xxx' - 如果用来补全的字符串与原字符串,两者的长度之和超过了指定的最小长度,则会截去超出位数的补全字符串
'abc'.padStart(10, '0123456789')// '0123456abc' - 应用
- 补全指定位数
'1'.padStart(10, '0') // "0000000001"
'12'.padStart(10, '0') // "0000000012"
'123456'.padStart(10, '0') // "0000123456" - 提示字符串格式
'12'.padStart(10, 'YYYY-MM-DD') // "YYYY-MM-12"
'09-12'.padStart(10, 'YYYY-MM-DD') // "YYYY-09-12"
- 补全指定位数
- 接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串
- padStart(es8)和padEnd(es8)