一、属性
length 字符串的长度
整个字符串,包括空格,都算成长度。
⭐字符串有length属性,可以被遍历。
<script>
let str = "hello world";
for (var i = 0; i < str.length; i++) {
console.log(str[i]);
}
</script>
二、方法
1. charAt()
返回在指定位置的字符,如果写的索引位置不存在,会返回一个空字符串。
<script>
let str = "hello world";
let a = str.charAt(6);
console.log(a);
/* 控制台显示:w */
</script>
2. concat()
连接字符串,会返回一个新的拼接后的字符串。
<script>
let str = "hello k";
let newstr = str.concat('itty');
console.log(newstr);
/* 控制台显示:hello kitty */
</script>
3. replace()
用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的字符。
<script>
let str = "hello world";
let a = str.replace('world','kitty');
console.log(a);
/* 控制台显示:hello kitty */
</script>
⭐g 表示全局, + 表示所有, /\d/ 表示数字。
<script>
let str='abc123efg456';
let a=str.replace(/\d/,'n');
console.log(a);
/* 控制台显示:abcn23efg456 */
let b=str.replace(/\d+/,'n');
console.log(b);
/* 控制台显示:abcnefg456 */
let c=str.replace(/\d/g,'n');
console.log(c);
/* 控制台显示:abcnnnefgnnn */
let d=str.replace(/\d+/g,'n');
console.log(d);
/* 控制台显示:abcnefgn */
</script>
4. replaceAll()
替换所有匹配到的子字符串。
<script>
let str='abisaboutab';
let newstr=str.replaceAll('ab','kk');
console.log(newstr);
/* 控制台显示:kkiskkoutkk */
</script>
<script>
let str='abisaboutab';
let newstr=str.replaceAll('ab',function(a,b) {
return 'QQ'
});
console.log(newstr);
/* 控制台显示:QQisQQoutQQ */
</script>
5. split()
把一个字符串分割成字符串数组。
let str = 'hello';
console.log(str.split());
str.split() 不加参数,会把 hello 这个整体放到数组当中。['hello']
str.split('') 把 hello 这个字符串,用空字符串分割,转化为数组。 ['h', 'e', 'l', 'l', 'o']
str.split(',') 如果用字符串中不存在的字符分割,那么还是会把整体放到数组中。['hello']
str.split('e') 用 e 当作分割符,把字符串分割成数组 。['h','llo']
str.split('l') 用 l 当作分割符,会有空字符, 因为有两个 l ,所以会分割成['he', '', 'o']。
6. indexOf()
返回某个指定的字符串值在字符串中首次出现的位置。如果值不存在,返回-1。
<script>
let str = "hello";
let index = str.indexOf('l');
console.log(index);
/* 控制台显示:2 */
</script>
7. lastIndexOf()
返回一个指定的字符串值最后出现的位置。如果值不存在,返回-1。
<script>
let str = "hello";
let index = str.lastIndexOf('l');
console.log(index);
/* 控制台显示:3 */
</script>
8. match()
可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
<script>
let str = 'he123llo456';
let a = str.match('o');
console.log(a);
</script>
<script>
let str = 'he123llo456';
let a = str.match(/\d+/g);
console.log(a);
</script>
9. toLowerCase()
把字符串转换为小写。
<script>
let str = "HELLO";
let newstr = str.toLowerCase();
console.log(newstr);
/* 控制台显示:hello */
</script>
10. toUpperCase()
把字符串转换为大写。
11. 字符串截取
⑴ substring(start,end)
提取字符串中两个指定的索引号之间的字符。
会返回一个新的字符串,对原来的字符串不产生影响。
两个参数:
第1个:以下标为多少的字符开头,包括该字符,
第2个:以下标为多少的字符结尾,不包括该字符。
<script>
let str = "hello kitty";
let n = str.substring(1,3);
console.log(n);
/* 控制台显示:el */
</script>
如果只写一个参数,表示从此下标开始到最后,包括最后一个字符。
<script>
let str = "hello kitty";
let n = str.substring(1);
console.log(n);
/* 控制台显示:ello kitty */
</script>
⑵ substr(start,number)
两个参数:
第1个:以下标为多少的字符开头,包括该字符,
第2个:从该字符开始,截取几个字符。
💢它并非 JavaScript 核心语言的一部分,未来将可能会被移除掉。如果可以的话,使用 substring() 替代它。
⑶ slice(start,end)
和 substring() 相似。
区别在于 slice() 的参数可以为负,substring() 的参数不可为负。
最后一个字符下标为 -1 。依次类推,倒数第二个字符下标为 -2 。
<script>
let str = "hello kitty";
let n = str.slice(-5,-1);
console.log(n);
/* 控制台显示:kitt */
</script>