JavaScript 字符串

242 阅读2分钟

一、属性

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>

image.png

<script>
    let str = 'he123llo456';
    let a = str.match(/\d+/g);
    console.log(a);
</script>

image.png

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>