学习笔试--JavaScript字符串方法

57 阅读4分钟

文章末尾有总结(彩蛋)!!!

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()

第一次书写文章,希望与优秀的程序员一起进步,同时也欢迎批评指正,感谢!