沃梦达 / IT编程 / 前端开发 / 正文

深入理解JS中的substr和substring

在JavaScript字符串操作中,substr()和substring()是两个常用的函数,都用来截取字符串。但在具体应用场景和实现方式有所不同,因此需要深入理解其差异。

深入理解JS中的substr和substring

在JavaScript字符串操作中,substr()substring()是两个常用的函数,都用来截取字符串。但在具体应用场景和实现方式有所不同,因此需要深入理解其差异。

substr()

substr()函数接受两个参数,第一个参数是截取的起始位置,第二个参数是截取的长度。如果省略第二个参数,则默认截取至字符串的尾部。该函数也可以接受负数参数,表示从字符串尾部开始计数。

示例1:

let str = 'Hello, world!';
let subStr = str.substr(7, 5);
console.log(subStr); // 输出 "world"

在上面的例子中,substr(7, 5)表示从第7个位置(从0开始计数)开始,截取长度为5的字符串。因此输出结果为"world"。

示例2:

let str='Hello world!';
let subStr=str.substr(-6,2);
console.log(subStr);//输出:'ld'

在上面的例子中,substr() 的第一个参数为负数,表示从字符串尾部开始截取,起始位置为倒数第6位(l字母),2表示截取的长度,即从上一个起始位置开始截取两位,输出结果为"ld"。

substring()

substr()类似,substring()也用来截取字符串,但它接受两个参数,第一个参数是截取的起始位置,第二个参数是截取的终止位置(不包含终止位置本身)。如果省略第二个参数,则默认截取至字符串的尾部。substring()不支持负数参数。

示例1:

let str = 'Hello, world!';
let subStr = str.substring(7, 12);
console.log(subStr); // 输出 "world"

在上面的例子中,substring(7, 12)表示从第7个位置(从0开始计数)开始截取,到第12个位置(不包含第12个位置),因此输出结果为"world"。

示例2:

let str='Hello world!';
let subStr=str.substring(6);
console.log(subStr);//输出:'world!'

在上面的例子中,substring() 的第一个参数表示从截取的起始位置,即位置6开始截取,由于省略了第二个参数,因此截取到了字符串尾部,输出结果为"world!"。

总结

  • substr()根据起始位置和长度截取字符串,支持负数参数,即从字符串尾部开始计数。
  • substring()根据起始位置和终止位置截取字符串,不支持负数参数。
  • 两者的区别在于第二个参数的含义,substr()表示截取的长度,substring()表示截取的终止位置。
  • 除非有特别需求,建议使用substring()函数。

本文标题为:深入理解JS中的substr和substring