字符串常用方法总结

1
2
3
4
5
let str = 'summertzzisagoodgirl';
//循环输出字符串中的每一个字符
for (let i = 0; i < str.length; i++) {
console.log(str[i])
}

charAt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/*
* charAt:根据索引获取指定位置的字符
* charCodeAt:获取指定字符的ASCII码值(Unicode编码值)
* @params
* n [number] 获取字符指定的索引
* @return
* 返回查找到的字符
* 找不到返回的是空字符串不是undefined,或者对应的编码值
*/
let str = 'summertzzisagoodgirl';
console.log(str.charAt(0)); // s
console.log(str[0]); // s
console.log(str.charAt(10000)); // undefined
console.log(str.charCodeAt(0)); //115
console.log(String.fromCharCode(122)); // z

substr / substring / slice

1
2
3
4
5
6
/*
* 都是为了实现字符串的截取(在原来字符串中查找到自己想要的)
* substr(n,m):从索引n开始截取m个字符,m不写截取到末尾(后面方法也是)
* substring(n,m):从索引n开始找到索引为m处(不含m)
* slice(n,m):和substring一样,都是找到索引为m处,但是slice可以支持负数作为索引,其余两个方法是不可以的
*/

indexOf / lastIndexof / includes

1
2
3
4
5
6
/*
* 验证字符是否存在
* indexOf(x,y):获取x第一次出现位置的索引,y是控制查找的起始位置索引
* lastIndexOf(x):最后一次出现位置的索引
* =>没有这个字符,返回的结果是-1
*/

toUpperCase / toLowerCase

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/*
* 字符串中字母的大小写转换
* toUpperCase():转大写
* toLowerCase():转小写
*/
let str = 'SummerTzz';
str = str.toUpperCase();
console.log(str); //=>'SUMMERTZZ'

str = str.toLowerCase();
console.log(str); //=>'summer'

// 实现首字母大写
str = str.substr(0, 1).toUpperCase() + str.substr(1);
console.log(str); //=>'Summertzz'

split

1
2
3
4
5
6
7
8
9
/*
* split([分隔符]):把字符串按照指定的分隔符拆分成数组(和数组中join对应)
* split支持传递正则表达式
*/
// 需求:把|分隔符变为,分隔符
let str = 'music|movie|eat|sport';
let ary = str.split('|'); //=>["music", "movie", "eat", "sport"]
str = ary.join(',');
console.log(str); //=>"music,movie,eat,sport"

replace

1
2
3
4
5
6
7
8
9
/*
* replace(老字符,新字符):实现字符串的替换(经常伴随着正则而用)
*/
let str = 'summer@tzz@lsbbd';
// str = str.replace('@', '-');
// console.log(str); //=>"summer-tzz@lsbbd" 在不使用正则表达式的情况下,执行一次REPLACE只能替换一次字符

str = str.replace(/@/g, '-');
console.log(str); //=>summer-tzz-lsbbd