在 js 中截取字符串时,一般常用的是三种方法,此三种方法分别为:slice() , substring() 以及 substr()。这三个方法都可以接受一个参数或二个参数的控制。关于这三个参数的使用,下面来简单的介绍一下。

js slice() 方法截取字符串

js 中的 slice() 方法其实常用于对数组元素的截取,但是它还可以用于字段串的截取。我们这里主要以截取字符串的形式对它进行讲解!

语法:

obj.slice(start,end);

参数:

start:必需。表示从何处开始截取位置的下标(下标从0开始)。如是负数则从字符串的尾部开始。例如:-1 指最后一个字符,-2 指倒数第二个字符,以此类推。

end:可选,规定从何处结束选取。如不指定该参数,则截取 start 到结束的所有字符。如果这个参数是负数,那么它规定的是从字符串尾部开始算起的字符。

例:

<script>
    var str = 'abcdefghigk';
    //截取完整的字符串,也就是从下标为0的元素开始
    console.log(str.slice(0)); //cdefghigk
    //从下标为2的字符开截取,到最后一个
    console.log(str.slice(2)); //cdefghigk
    //从下标为2的字符开截取,到第五个字符结束
    console.log(str.slice(2,5)); //cde
    //从倒数第二个字符开始,截取到最后
    console.log(str.slice(-2)); //gk
    //从倒数第五个字符开始,截取到倒数第六个 
    console.log(str.slice(-5,-6)); // 没有符号条件,返回为空
    //从倒数第五个字符开始,截取到倒数第二个
    console.log(str.slice(-5,-2));// ghi
</script>

js substring() 方法截取字符串

相比较于利用 js 的 slice() 方法来截取字符串过程,js substring() 方法来截取字符串要显得简单的很多。但 substring() 方法使用起来不能够随心所欲!

语法:

strobj.substring(start,stop);

参数:

start:必需。一个正整数,规定要截取起始位置下标(下标从0开始),0 表示第一个字符,1表示第二个字符,依次类推!

stop:可选,一个正整数,规定截取结束的位置,如为空则直到最后一位!

返回值

一个新的字符串,该字符是从 start 处到 stop-1 处的所有字符,其长度为 stop 减 start。

示例:

<script>
    var str = 'abcdefghigk';
    // 从下标为0的字符开始截取 
    console.log(str.substring(0)); //abcdefghigk
    // 从下标为2的字符开始截取
    console.log(str.substring(2)); //cdefghigk
    // 从下标为2的字符开始截取,到下标为6的字符结束不包含下标为6的字符
    console.log(str.substring(2,6)); //cdef
    // 从下标为6的字符开始截取,到下标为 2 的字符结束。由于 第一个参数大于第二个参数,函数会自动转成上面函数的参数形式
    console.log(str.substring(6,2)); //cdef
    //从下标为6的字符开始到下标为6的字符结束,由于截取时第二个参数指定的字符不会截取到,所以为之空
    console.log(str.substring(6,6)); // 返回空
</script>

注意:

substring() 方法返回的子串包括 start 处的字符,但不包括 stop 处的字符。

js substr() 方法截取字符串的教程

substr():截取从 start 下标(下标从0开始)位置开始指定长度的字符串

语法:

strobj.substr(start,length)

参数:

start:必需。必须为整数,表示字符串的截取下标(下标从0开始)。如果是负数那么从字符串尾部开始。-1 表示符串中最后一个字符,-2 表示倒数第二个字符,以此类推。

length:表示截取的长度,如省略则表示截取到字符串的最未端!

例:

<script>
    var str = 'abcdefghigk';
    //从下标为0的字符串开始
    console.log(str.substr(0)); //abcdefghigk
    //从下标为2的字符串开始
    console.log(str.substr(2)); //cdefghigk
    //从下标为2的字符开始,截取6个
    console.log(str.substr(2,6)); //cdefgh
    //从倒数第二个字符开始
    console.log(str.substr(-2, 6)); //gk
    //从倒数第四个字符开始
    console.log(str.substr(-4)); //higk
</script>