subStr和subString的用法

335 阅读2分钟

首先来说一下substr 和 substring 都是获取给定字符串的子字符串的常用方法。

但是,二者之间也有区别,使用时记得区分,下面就来说一说它们的区别: 这两种方法都有两个参数。第一个参数代表子元素字符串起始位置的下标也就是索引,但是第二个参数是不一样的例如:

substr(startPosition, length)
substring(startPosition, endPosition)

substrsubstring 的第二个参数分别是子元素字符串的长度和结束位置的下标(索引)。给定一个 hi,mybaby 字符串:

'hi,mybaby'.substr(2, 4) // ',myb'
'hi,mybaby'.substring(2, 4) // ',m'
注意:这里标点符号也算作一个字符,包括空格,但是这里我没有写空格

substr 允许使用负数作为起始位置参数。

'hi,mybaby'.substr(-2, 5) // 'by'

另外还有一点,子元素字符串将使负开始位置变为 0(零):

'hi,mybaby'.substring(-3, 6) // 'hi,myb'
'hi,mybaby'.substring(0, 6) // 'hi,myb'

下面来看一个小案例:

var str = "E:/itcast/class/php/js/day2/abc.html";

    var gang = str.lastIndexOf("/");
    var dian = str.lastIndexOf(".");
    var name = str.substring(gang + 1, dian);
    var houzhui = str.substr(dian + 1);
    document.write("文件名" + name + "后缀" + houzhui);
    
 /*
    注意点:在js中,字符串中的特殊字符需要使用反斜杠进行转义,比如“\”要写成“\\”,换行要写成“\n”,单引号要写成“ \’  ”,双引号要写成“  \”  ”。
    所以做题前要先对字符串进行转义,因为“\\”前面反斜杠是转义后面的斜杠,当成一个字符;所以 \\ 只能算一个斜杠。
    利用lastIndexOf()函数取到‘\\’和‘.’,substring() 方法用于提取字符串中介于两个指定下标之间的字符。由于系统索引从0开始,所以默认加一。substring() 取出\\和.之间的字符,substr方法取出.后面的字符。

    substr(string, start<,length>):从string的start位置开始提取字符串 
    length:要提取字符串的长度.
    若length为以下任意条件之一时,返回start位置到串尾的所有字符:
    length不指定 
    length为空 
    length为负数
    length大于start到串尾的长度
 */

输出结果为:文件名abc后缀html

你学废了吗?