所有字符串方法都会返回新字符串。它们不会修改原始字符串。(字符串不可变性,可以重新赋值)
length,
indexOf,lastIndexOf,search,
slice,substring,substr,
replace
toUpperCase,toLowerCase,
字符串拆、合:concat,split,
trim,
charAt,charCodeAt,
文章目录
length
let str= 'abcdefg';
console.log(str.length); // 7
indexOf()
返回字符串中指定文本首次出现的索引(位置)。
第二个参数:开始搜索的位置。
没有找到,返回-1。
let str= 'abcdefg';
console.log(str.indexOf('cd')); // 2
let str= 'abcdefgabcdefg';
console.log(str.indexOf('cd',4)); // 9
lastIndexOf()
返回指定文本在字符串中最后一次出现的索引
let str= 'abcdefgabcdefg';
console.log(str.lastIndexOf('cd')); // 9
search()
搜索特定值的字符串,并返回匹配的位置:
let str= 'abcdefgabcdefg';
console.log(str.search('cd')); // 2
search和indexOf两种方法是不相等的。区别在于:
- search() 方法无法设置第二个开始位置参数。
- indexOf() 方法无法设置更强大的搜索值(正则表达式)。
slice()
提取字符串的某个部分并在新字符串中返回被提取的部分。
该方法设置两个参数:起始索引(开始位置),终止索引(结束位置)。
如果某个参数为负,则从字符串的结尾开始计数。
如果省略第二个参数,则该方法将裁剪字符串的剩余部分。
let str= 'abcdefgabcdefg';
console.log(str.slice(1,3)); // bc
let str= 'abcdefg';
console.log(str.slice(2,-3)); // cd
let str= 'abcdefg';
console.log(str.slice(-6,-3)); // bcd
let str= 'abcdefg';
console.log(str.slice(-12)); // abcdefg
let str= 'abcdefg';
console.log(str.slice(2)); // cdefg
substring()
substring() 类似于 slice()。不同之处在于 substring() 无法接受负的索引。
substr()
substr() 类似于 slice()。不同之处在于第二个参数规定被提取部分的长度。
如果首个参数为负,则从字符串的结尾计算位置。
let str= 'abcdefg';
console.log(str.substr(2,4)); // cdef
let str= 'abcdefg';
console.log(str.substr(-5,4)); // cdef
replace()
默认地,replace() 只替换首个匹配。
默认地,replace() 对大小写敏感。
如需执行大小写不敏感的替换,请使用正则表达式 /i(大小写不敏感)
如需替换所有匹配,请使用正则表达式的 g 标志(用于全局搜索)
let str= 'abcdefgb';
console.log(str.replace('b','bbb')); // abbbcdefgb
let str= 'aBcdefgB';
console.log(str.replace('b','bbb')); // aBcdefgB
let str= 'aBcdefgB';
console.log(str.replace(/b/i,'bbb')); // abbbcdefgB
let str= 'aBcdefgB';
console.log(str.replace(/b/ig,'bbb')); // abbbcdefgbbb
toUpperCase() 和 toLowerCase()
let str= 'Hello World!';
console.log(str.toUpperCase()); // HELLO WORLD!
concat
连接两个或多个字符串:
let str1= 'Hello';
let str2= ' World!';
console.log(str1.concat(str2)); // Hello World!
let str1= 'Hello';
let str2= ' World!';
console.log(str1.concat(str2,'aa','bb')); // Hello World!aabb
trim()
删除字符串两端的空白符.
let str= ' Hello World! ';
console.log(str.trim()); // Hello World!
charAt()
返回字符串中指定下标(位置)的字符串
let str= 'HELLO WORLD';
console.log(str.charAt(1)); // E
charCodeAt()
返回字符串中指定索引的字符 unicode 编码
let str= 'HELLO WORLD';
console.log(str.charCodeAt(1)); // 69
split()
字符串转换为数组
let str= 'HELLO WORLD';
console.log(str.split()); // ["HELLO WORLD"]
let str= 'HELLO WORLD';
console.log(str.split('')); // ["H", "E", "L", "L", "O", " ", "W", "O", "R", "L", "D"]
let str= 'a,b,c,d,e';
console.log(str.split(',')); // ["a", "b", "c", "d", "e"]