文章末尾有总结(彩蛋)!!!
1、把一个字符串转为大写/小写 ?
转大写使用 toLocaleUpperCase() 方法 、 转小写使用 toLocalLowerCase() 方法
let str = 'abc';
let str1 = str.toLocaleUpperCase(); // str1的结果为 'ABC'
let str = 'ABC';
let str1 = str.toLocaleLowerCase(); // str1的结果为 'abc'
2、找出某个字符所在的位置 ?
第一次出现的位置(索引值) 使用 indexOf() 方法 、 最后一次出现的位置(索引值) 使用lastIndexOf() 方法
let str = 'abc';
let num1 = str.indexOf('b'); // num1的结果为 1
let str = 'abbbc';
let num1 = str.lastIndexOf('b'); // num1的结果为3
// 补充:JS语言的索引值从0开始计算,索引值的两种计算方法:从左到右 从0一直加 如 'abc' a的索引值为0,b的索引值为1,以此类推 ; 从右往左 从-1一直减 如 'abc' c的索引值为-1,b的索引值为-2,以此类推
3、找出某个位置(索引值)所在的字符 ?
使用 charAt() 方法
let str = 'abc';
let str1 = str.charAt(1); // str1的结果为 'b'
4、字符串和unicode编码之间的相互转换 ?
某个字符转unicode编码 使用 charCodeAt() 方法 、 一个或一组unicode编码转为字符 使用静态方法String.fromCharCode(参数1,参数2...)
let str = 'abc';
let num1 = str.charCodeAt(1); // num1的结果为 98
let str = String.fromCharCode(97,98); // str的结果为 'ab'
// 补充:常见的字符对应的unicode编码 A-Z 从65开始 依次往上加1 (A-65,B-66...) 、a-z 从97开始 依次往上加1 (a-97,B-98...)
5、重复一个字符串 ? 对字符串进行截取/切片 ? 替换字符 ?
重复字符串使用 repeat() 方法 、 截取/切片使用 slice() 方法 或 substring() 方法 、 替换字符使用 replace() 方法 或 replaceAll() 方法
let str = 'abc';
let str1 = str.repeat(3); // str1的结果为 'abcabcabc' 说白了就是传入的参数是几就重复字符串几次
let str = 'abc';
let str1 = str.slice(0,2); // str1的结果为 'ab' 值得注意的是截取的不包括结束索引 用数学来说就是左闭右开[ )
let str = 'abc';
let str1 = str.substring(0,2); // str1的结果为 'ab'
// 替换字符 第一个参数是要替换的值 可以接收普通字符串 或 正则表达式 第二个新的替换值
let str = 'abbc';
let str1 = str.replace('b','o'); // str1 的结果为 'aobc'
let str2 = str.replace(/b/g,'0'); // str2的结果为 'aooc'
// 我们不难看出 如果没有使用正则进行全局匹配 只会替换一次 我们可以使用replaceAll()方法
let str3 = str.replaceAll('b','o'); // str3的结果为 'aooc'
6、匹配字符串 ? 检索字符串 ?
匹配字符串使用 match() 方法 、 检索字符串使用 search() 方法
// match() 方法 接收一个RegExp对象 如果传入的参数不是RegExp对象 会尝试经过RegExp构造函数 转为RegExp对象
let str = 'abbbbc';
const arr = str.match(/b/g); // arr结果为 ['b','b','b','b']
// 可以看出会把匹配到的结果放进一个数组中 如果匹配不到结果为null
7、把字符串转为字符串数组/分割字符串 ?
使用 split() 方法
// split()方法第一个可选参数可为字符串 或 正则表达式 第二个可选参数是数组的长度
let str = 'abcd';
let arr = str.split('b'); //arr结果为 ['a','cd']
let arr1 = str.split(''); //arr1结果为 ['a','b','c','d']
let arr2 = str.split(); //arr2结果为 ['abcd']
8、检测是否包括某个子字符串? 连接字符串 ?
检测是否包括某个子字符串 使用 includes() 方法 、 连接字符串 使用 concat() 方法
let str = 'abc';
let boo = str.includes('c'); // boo的结果为 true 注: includes()方法的返回值为true或false
let str = 'abc';
let str1 = str.concat('def','gh'); // str1的结果为 'abcdefgh'
// 其实连接字符串的话可以直接使用 +
let str2 = str + 'def' + 'gh'; // str2的结果为 'abcdefgh'
9、去除字符串头尾空白符 ?
使用 trim() 方法
let str = ' abc ';
let str1 = str.trim(); // str1的结果为 'abc'
10、总结
| 操作 | 方法名 |
|---|---|
| 转大写 | toLocaleUpperCase() |
| 转小写 | toLocaleLowerCase() |
| 字符所在的位置(第一次出现) | indexOf() |
| 字符所在的位置(最后一次出现) | lastIndexOf() |
| 某个位置(索引值)所在的字符 | charAt() |
| 字符转unicode编码 | charCodeAt() |
| unicode编码转为字符 | String.fromCharCode() |
| 重复字符串 | repeat() |
| 截取/切片 | slice() 或 substring() |
| 替换 | replace() 或 replaceAll() |
| 匹配字符串 | match() |
| 检索字符串 | search() |
| 字符串转为字符串数组/分割字符串 | split() |
| 检测是否包括某个子字符串 | includes() |
| 连接字符串 | concat() |
| 去除字符串头尾空白符 | trim() |
第一次书写文章,希望与优秀的程序员一起进步,同时也欢迎批评指正,感谢!